25LINQ拾遗及实例
生活随笔
收集整理的這篇文章主要介紹了
25LINQ拾遗及实例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? 投影
□ 遍歷數(shù)組索引,Select獲取
int[] indexes = {0, 2}; string[] strs = {"a", "b", "c", "d"}; ? var result = from i in indexes select strs[i]; ? foreach (string str in result) { Console.Write(str + " "); } Console.ReadKey();結果:a c
?
□ 使用集合索引投影匿名對象
static void Main(string[] args) { int[] numbers = {0, 3, 4, 5, 7}; var result = numbers.Select((n, index) => new {Num = n, IsValueEqualIndex = (n == index)}); foreach (var item in result) { Console.WriteLine("{0}:{1}",item.Num,item.IsValueEqualIndex); } Console.ReadKey(); }結果:
?
□ 2個集合的笛卡爾積
int[] numberA = {0,2}; int[] numberB = {1,3}; ? var result = from a in numberA from b in numberB select new {a, b}; foreach (var item in result) { Console.WriteLine("{0},{1}",item.a,item.b); } Console.ReadKey();結果:
?
□ 笛卡爾積應用,列出所有客戶的所有訂單
public class Customer { public int Id { get; set; } public string Name { get; set; } public List<Order> Orders { get; set; } } ? public class Order { public int Id { get; set; } public decimal Total { get; set; } } ? Order order1 = new Order(){Id = 1,Total = 10.00m}; Order order2 = new Order(){Id = 2,Total = 20.00m}; Order order3 = new Order(){Id = 3,Total = 30.00m}; ? List<Customer> customers = new List<Customer>() { new Customer() { Id = 1, Name = "張三", Orders = new List<Order>(){order1,order2} }, new Customer() { Id = 2, Name = "李四", Orders = new List<Order>() { order3 } } }; ? ? var result = from c in customers from o in c.Orders select new {c.Id, c.Name, o.Total}; ? foreach (var item in result) { Console.WriteLine("客戶編號:{0},姓名:{1},訂單金額:{2}", item.Id,item.Name,item.Total); } ? Console.ReadKey(); ?結果:
?
? 分組
□ group n by 條件 into g, g.Key就是分組標準和條件, g代表分組里所有元素的集合
int[] numbers = { 5, 4, 1, 3, 9, 8, 6}; var result = from n in numbers group n by n%5 into g select new {Remainder = g.Key, Numbers = g}; ? foreach (var item in result) { Console.WriteLine("元素除以5的余數(shù)為:{0}",item.Remainder); foreach (var n in item.Numbers) { Console.WriteLine(n); } } Console.ReadKey();結果:
?
? 連接
□ 根據(jù)2個集合的相同部分連接
public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } } ? List<Product> products = new List<Product>() { new Product(){Id=1,Name = "體恤衫",Category = "服飾"}, new Product(){Id = 2,Name = "香水",Category = "化妝品"} }; ? string[] categoreis = new string[] { "服飾", "化妝品", "電子" }; ? var result = from c in categoreis join p in products on c equals p.Category select new {Category = c, p.Name}; foreach (var item in result) { Console.WriteLine(item.Name + "屬于:" + item.Category); } Console.ReadKey(); ?
結果:
?
□ 把其中一個集合的所有元素放到一個別名集合中
List<Product> products = new List<Product>() { new Product(){Id=1,Name = "體恤衫",Category = "服飾"}, new Product(){Id = 2,Name = "香水",Category = "化妝品"} }; ? string[] categoreis = new string[] { "服飾", "化妝品", "電子" }; ? var result = from c in categoreis join p in products on c equals p.Category into ps select new {Category = c, Products = ps}; foreach (var item in result) { Console.WriteLine("類別:{0}包括:",item.Category); foreach (var p in item.Products) { Console.WriteLine(" " + p.Name); } } Console.ReadKey();結果:
總結
以上是生活随笔為你收集整理的25LINQ拾遗及实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机怎样辅助英语听力教学方法有哪些,计
- 下一篇: Linux 内核经典面试题