Linq示例

来源:互联网 发布:中小企业员工流失数据 编辑:程序博客网 时间:2024/06/06 13:11
 var customers = new[] {                      new { CustomerID = 1, FirstName = "Orlando", LastName = "Gee",                              CompanyName = "A Bike Store" },                     new { CustomerID = 2, FirstName = "Keith", LastName = "Harris",                              CompanyName = "Bike World" },                     new { CustomerID = 3, FirstName = "Donna", LastName = "Carreras",                              CompanyName = "A Bike Store" },                     new { CustomerID = 4, FirstName = "Janet", LastName = "Gates",                               CompanyName = "Fitness Hotel" },                     new { CustomerID = 5, FirstName = "Lucy", LastName = "Harrington",                              CompanyName = "Grand Industries" },                     new { CustomerID = 6, FirstName = "David", LastName = "Liu",                              CompanyName = "Bike World" },                     new { CustomerID = 7, FirstName = "Donald", LastName = "Blanton",                              CompanyName = "Grand Industries" },                     new { CustomerID = 8, FirstName = "Jackie", LastName = "Blackwell",                              CompanyName = "Fitness Hotel" },                     new { CustomerID = 9, FirstName = "Elsa", LastName = "Leavitt",                              CompanyName = "Grand Industries" },                     new { CustomerID = 10, FirstName = "Eric", LastName = "Lang",                               CompanyName = "Distant Inn" }              };            var addresses = new[] {                      new { CompanyName = "A Bike Store", City = "New York", Country = "United States"},                    new { CompanyName = "Bike World", City = "Chicago", Country = "United States"},                    new { CompanyName = "Fitness Hotel", City = "Ottawa", Country = "Canada"},                    new { CompanyName = "Grand Industries", City = "London",Country = "United Kingdom"},                     new { CompanyName = "Distant Inn", City = "Tetbury", Country = "United Kingdom"}             };            #region             //1.Select输出单个属性            var plist_1 = customers.Select(w => w.FirstName);            foreach (string firstName in plist_1)            {                Console.WriteLine(firstName);            }                        //2.创建Person类            IEnumerable<Person> plist_2 = customers.Select(w => new Person { Name = w.FirstName + " " + w.LastName, Work = w.CompanyName });            foreach (var p in plist_2)            {                Console.WriteLine("Name: " + p.Name);                Console.WriteLine("Work: " + p.Work + "\n");            }            //3.匿名类            var plist_3 = customers.Select(w => new { Name = w.FirstName + " " + w.LastName, Work = w.CompanyName });            foreach (var p in plist_3)            {                Console.WriteLine("Name: " + p.Name);                Console.WriteLine("Work: " + p.Work + "\n");            }            //4.使用Where筛选数据            var plist_4 = customers.Where(w => string.Equals(w.CompanyName, "A Bike Store")).Select(w => w.FirstName);            foreach (var p in plist_4)            {                Console.WriteLine(p);            }            //5.OrderBy && OrderByDescending,重申Select只是用来筛选所需字段的并没有过滤作用            //var plist_5 = customers.OrderBy(w => w.CompanyName).Select(k => string.Equals(k.CompanyName, "A Bike Store"));            var plist_5 = customers.OrderByDescending(w => w.CompanyName).Select(k => k.CustomerID);            foreach (var p in plist_5)            {                Console.WriteLine(p);            }            //6.对过滤的结果进行排序(Where OrderBy)            //var plist_6 = customers.Where(w => string.Equals(w.CompanyName, "A Bike Store")).OrderByDescending(k => k.CustomerID);            var plist_6 = customers.Where(w => string.Equals(w.CompanyName, "A Bike Store")).OrderByDescending(k => k.CustomerID).Select(t => t.FirstName);            foreach (var p in plist_6)            {                Console.WriteLine(p);            }                        //7.GroupBy            var plist_7 = customers.GroupBy(w => w.CompanyName);            foreach(var p in plist_7)            {                Console.WriteLine(p.Key);                foreach (var k in p)                {                    Console.WriteLine(k.FirstName);                }                Console.WriteLine("\n");            }            //8.汇总(Count(),Max(),Min().Distinct())            int i = customers.Select(w => w.CompanyName).Count();            Console.WriteLine(i);            int i2 = customers.Select(w => w.CustomerID).Max();            Console.WriteLine(i2);            int i3 = customers.Select(w => w.CustomerID).Min();            Console.WriteLine(i3);            int i4 = customers.Select(w => w.CompanyName).Distinct().Count();            Console.WriteLine(i4);            //9.联接数据(Join)            //方法一            var plist_8 = from c in customers                        join o in addresses                   on c.CompanyName equals o.CompanyName                        select new                        {                            Name = c.FirstName + " " + c.LastName,                            CompanyName = c.CompanyName,                            City = o.City,                            Country = o.Country                        };            foreach (var p in plist_8)            {                Console.WriteLine(p);            }            //方法二            var citiesAndCustomers = customers.Select(c => new { c.FirstName, c.LastName, c.CompanyName }).Join               (addresses, custs => custs.CompanyName, addrs => addrs.CompanyName, (custs, addrs) => new { custs.FirstName, custs.LastName, addrs.Country });            foreach (var p in citiesAndCustomers)            {                Console.WriteLine(p);            }            //10.操作符            var plist_9 = from c in customers                          select c.FirstName;            foreach (var p in plist_9)            {                Console.WriteLine(p);            }            var plist_10 = from c in customers                           select new Person { Name = c.FirstName, Work = c.CompanyName };            foreach (var p in plist_10)            {                Console.WriteLine(p.Name + "," + p.Work);            }            var plist_11 = from c in customers                           where string.Equals(c.CompanyName, "A Bike Store")                           orderby c.CustomerID                           select new { c.CustomerID, c.FirstName, c.CompanyName };            foreach (var p in plist_11)            {                Console.Write(p.CustomerID + " ");                Console.Write(p.FirstName + " ");                Console.Write(p.CompanyName);                Console.WriteLine("");            }            Console.ReadKey();            #endregion

原创粉丝点击