LINQ(Language-Integrated Query)是C#语言中的一个强大的查询技术,它提供了一种统一的查询语法,可以用于查询和操作各种数据源,包括集合、数据库、XML等。下面详细描述了LINQ的20个功能点,并提供了相应的源代码。
int[] numbers = { 1, 2, 3, 4, 5 };var query = from num in numbers select num;foreach (var num in query){ Console.WriteLine(num);}
int[] numbers = { 1, 2, 3, 4, 5 };var query = from num in numbers where num % 2 == 0 select num;foreach (var num in query){ Console.WriteLine(num);}
int[] numbers = { 5, 3, 1, 4, 2 };var query = from num in numbers orderby num select num;foreach (var num in query){ Console.WriteLine(num);}
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };var query = from name in names group name by name[0];foreach (var group in query){ Console.WriteLine(group.Key); foreach (var name in group) { Console.WriteLine(name); }}
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };var query = from name in names select name.Length;foreach (var length in query){ Console.WriteLine(length);}
string[] names1 = { "Alice", "Bob", "Charlie" };string[] names2 = { "David", "Eve", "Frank" };var query = from name1 in names1 join name2 in names2 on name1[0] equals name2[0] select new { Name1 = name1, Name2 = name2 };foreach (var pair in query){ Console.WriteLine($"{pair.Name1}, {pair.Name2}");}
using (var dbContext = new MyDbContext()){ var query = from user in dbContext.Users where user.Age > 18 select user; foreach (var user in query) { Console.WriteLine(user.Name); }}
XDocument doc = XDocument.Load("data.xml");var query = from element in doc.Descendants("book") where (int)element.Element("price") > 10 select element.Element("title").Value;foreach (var title in query){ Console.WriteLine(title);}
string json = File.ReadAllText("data.json");var data = JsonConvert.DeserializeObject<List<Person>>(json);var query = from person in data where person.Age > 18 select person.Name;foreach (var name in query){ Console.WriteLine(name);}
int[] numbers = { 1, 2, 3, 4, 5 };var query = from num in numbers where num % 2 == 0 select num * 2;foreach (var num in query){ Console.WriteLine(num);}
string[] names = { "Alice", "Bob", "Charlie", "David", "Eve" };var query = from name in names select new { Name = name, Length = name.Length };foreach (var item in query){ Console.WriteLine($"{item.Name}, {item.Length}");}
public class Person{ public string Name { get; set; } public int Age { get; set; }}List<Person> people = new List<Person>{ new Person { Name = "Alice", Age = 20 }, new Person { Name = "Bob", Age = 25 }, new Person { Name = "Charlie", Age = 30 }};var query = from person in people where person.Age > 25 select person.Name;foreach (var name in query){ Console.WriteLine(name);}
int[] numbers = { 1, 2, 3, 4, 5 };var query = from num in numbers where num % 2 == 0 select num * 2;List<int> result = query.ToList();foreach (var num in result){ Console.WriteLine(num);}
int pageNumber = 2;int pageSize = 10;var query = from product in dbContext.Products orderby product.Name select product;var page = query.Skip((pageNumber - 1) * pageSize).Take(pageSize);foreach (var product in page){ Console.WriteLine(product.Name);}
int[] numbers = { 1, 2, 3, 4, 5 };int sum = numbers.Sum();int max = numbers.Max();int min = numbers.Min();double average = numbers.Average();Console.WriteLine($"Sum: {sum}");Console.WriteLine($"Max: {max}");Console.WriteLine($"Min: {min}");Console.WriteLine($"Average: {average}");
int[] numbers1 = { 1, 2, 3, 4, 5 };int[] numbers2 = { 4, 5, 6, 7, 8 };var query = numbers1.Intersect(numbers2);foreach (var num in query){ Console.WriteLine(num);}
int[] numbers1 = { 1, 2, 3, 4, 5 };int[] numbers2 = { 4, 5, 6, 7, 8 };var query = numbers1.Union(numbers2);foreach (var num in query){ Console.WriteLine(num);}
int[] numbers1 = { 1, 2, 3, 4, 5 };int[] numbers2 = { 4, 5, 6, 7, 8 };var query = numbers1.Except(numbers2);foreach (var num in query){ Console.WriteLine(num);}
var query = from order in dbContext.Orders join customer in dbContext.Customers on order.CustomerId equals customer.Id select new { OrderId = order.Id, CustomerName = customer.Name };foreach (var result in query){ Console.WriteLine($"{result.OrderId}, {result.CustomerName}");}
int[] numbers = { 1, 2, 3, 4, 5 };var query = numbers.Reverse();foreach (var num in query){ Console.WriteLine(num);}
以上是20个常用的LINQ功能点的示例代码,它们展示了LINQ在C#中的强大查询能力和灵活性。通过使用LINQ,开发人员可以更加方便地进行各种数据操作和查询,提高代码的可读性和开发效率。
本文链接:http://www.28at.com/showinfo-26-51252-0.htmlC#中LINQ的使用知多少?LINQ常功能整理,源代码解析
声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。