ToB企服应用市场:ToB评测及商务社交产业平台

标题: C#中LINQ的使用知多少?LINQ常功能整理,实例源代码解析 [打印本页]

作者: 惊落一身雪    时间: 2024-1-10 20:19
标题: C#中LINQ的使用知多少?LINQ常功能整理,实例源代码解析
 
LINQ(Language-Integrated Query)是C#语言中的一个强大的查询技术,它提供了一种统一的查询语法,可以用于查询和操作各种数据源,包括集合、数据库、XML等。下面详细描述了LINQ的20个功能点,并提供了相应的源代码。
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. var query = from num in numbers
  3.             select num;
  4. foreach (var num in query)
  5. {
  6.     Console.WriteLine(num);
  7. }
复制代码
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. var query = from num in numbers
  3.             where num % 2 == 0
  4.             select num;
  5. foreach (var num in query)
  6. {
  7.     Console.WriteLine(num);
  8. }
复制代码
  1. int[] numbers = { 5, 3, 1, 4, 2 };
  2. var query = from num in numbers
  3.             orderby num
  4.             select num;
  5. foreach (var num in query)
  6. {
  7.     Console.WriteLine(num);
  8. }
复制代码
  1. string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };
  2. var query = from name in names
  3.             group name by name[0];
  4. foreach (var group in query)
  5. {
  6.     Console.WriteLine(group.Key);
  7.     foreach (var name in group)
  8.     {
  9.         Console.WriteLine(name);
  10.     }
  11. }
复制代码
  1. string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };
  2. var query = from name in names
  3.             select name.Length;
  4. foreach (var length in query)
  5. {
  6.     Console.WriteLine(length);
  7. }
复制代码
  1. string[] names1 = { "Alice", "Bob", "Charlie" };
  2. string[] names2 = { "David", "Eve", "Frank" };
  3. var query = from name1 in names1
  4.             join name2 in names2 on name1[0] equals name2[0]
  5.             select new { Name1 = name1, Name2 = name2 };
  6. foreach (var pair in query)
  7. {
  8.     Console.WriteLine($"{pair.Name1}, {pair.Name2}");
  9. }
复制代码
  1. using (var dbContext = new MyDbContext())
  2. {
  3.     var query = from user in dbContext.Users
  4.                 where user.Age > 18
  5.                 select user;
  6.     foreach (var user in query)
  7.     {
  8.         Console.WriteLine(user.Name);
  9.     }
  10. }
复制代码
  1. XDocument doc = XDocument.Load("data.xml");
  2. var query = from element in doc.Descendants("book")
  3.             where (int)element.Element("price") > 10
  4.             select element.Element("title").Value;
  5. foreach (var title in query)
  6. {
  7.     Console.WriteLine(title);
  8. }
复制代码
  1. string json = File.ReadAllText("data.json");
  2. var data = JsonConvert.DeserializeObject<List<Person>>(json);
  3. var query = from person in data
  4.             where person.Age > 18
  5.             select person.Name;
  6. foreach (var name in query)
  7. {
  8.     Console.WriteLine(name);
  9. }
复制代码
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. var query = from num in numbers
  3.             where num % 2 == 0
  4.             select num * 2;
  5. foreach (var num in query)
  6. {
  7.     Console.WriteLine(num);
  8. }
复制代码
  1. string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };
  2. var query = from name in names
  3.             select new { Name = name, Length = name.Length };
  4. foreach (var item in query)
  5. {
  6.     Console.WriteLine($"{item.Name}, {item.Length}");
  7. }
复制代码
  1. public class Person
  2. {
  3.     public string Name { get; set; }
  4.     public int Age { get; set; }
  5. }
  6. List<Person> people = new List<Person>
  7. {
  8.     new Person { Name = "Alice", Age = 20 },
  9.     new Person { Name = "Bob", Age = 25 },
  10.     new Person { Name = "Charlie", Age = 30 }
  11. };
  12. var query = from person in people
  13.             where person.Age > 25
  14.             select person.Name;
  15. foreach (var name in query)
  16. {
  17.     Console.WriteLine(name);
  18. }
复制代码
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. var query = from num in numbers
  3.             where num % 2 == 0
  4.             select num * 2;
  5. List<int> result = query.ToList();
  6. foreach (var num in result)
  7. {
  8.     Console.WriteLine(num);
  9. }
复制代码
  1. int pageNumber = 2;
  2. int pageSize = 10;
  3. var query = from product in dbContext.Products
  4.             orderby product.Name
  5.             select product;
  6. var page = query.Skip((pageNumber - 1) * pageSize).Take(pageSize);
  7. foreach (var product in page)
  8. {
  9.     Console.WriteLine(product.Name);
  10. }
复制代码
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. int sum = numbers.Sum();
  3. int max = numbers.Max();
  4. int min = numbers.Min();
  5. double average = numbers.Average();
  6. Console.WriteLine($"Sum: {sum}");
  7. Console.WriteLine($"Max: {max}");
  8. Console.WriteLine($"Min: {min}");
  9. Console.WriteLine($"Average: {average}");
复制代码
  1. int[] numbers1 = { 1, 2, 3, 4, 5 };
  2. int[] numbers2 = { 4, 5, 6, 7, 8 };
  3. var query = numbers1.Intersect(numbers2);
  4. foreach (var num in query)
  5. {
  6.     Console.WriteLine(num);
  7. }
复制代码
  1. int[] numbers1 = { 1, 2, 3, 4, 5 };
  2. int[] numbers2 = { 4, 5, 6, 7, 8 };
  3. var query = numbers1.Union(numbers2);
  4. foreach (var num in query)
  5. {
  6.     Console.WriteLine(num);
  7. }
复制代码
  1. int[] numbers1 = { 1, 2, 3, 4, 5 };
  2. int[] numbers2 = { 4, 5, 6, 7, 8 };
  3. var query = numbers1.Except(numbers2);
  4. foreach (var num in query)
  5. {
  6.     Console.WriteLine(num);
  7. }
复制代码
  1. var query = from order in dbContext.Orders
  2.             join customer in dbContext.Customers on order.CustomerId equals customer.Id
  3.             select new { OrderId = order.Id, CustomerName = customer.Name };
  4. foreach (var result in query)
  5. {
  6.     Console.WriteLine($"{result.OrderId}, {result.CustomerName}");
  7. }
复制代码
  1. int[] numbers = { 1, 2, 3, 4, 5 };
  2. var query = numbers.Reverse();
  3. foreach (var num in query)
  4. {
  5.     Console.WriteLine(num);
  6. }
复制代码
以上是20个常用的LINQ功能点的示例代码,它们展示了LINQ在C#中的强大查询能力和灵活性。通过使用LINQ,开发人员可以更加方便地进行各种数据操作和查询,提高代码的可读性和开发效率。
 


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4