📅  最后修改于: 2023-12-03 15:02:41.758000             🧑  作者: Mango
LINQ(Language Integrated Query)是一项用于.NET Framework的技术,它以面向对象的方式对各种数据源(如对象集合、数据库表、XML文档等)进行数据查询和操作。LINQ独特方法是在LINQ技术中封装的特殊方法,用于更加简便地对数据进行查询和处理。
Where方法是用于从序列中筛选出满足指定条件的元素,并返回一个新序列。示例代码如下:
var numbers = new List<int>() { 1, 2, 3, 4, 5 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var number in evenNumbers)
{
Console.WriteLine(number);
}
输出结果如下:
2
4
Select方法是用于对序列中的每个元素执行指定操作,并返回一个新的序列。示例代码如下:
var numbers = new List<int>() { 1, 2, 3, 4, 5 };
var squaredNumbers = numbers.Select(n => n * n);
foreach (var number in squaredNumbers)
{
Console.WriteLine(number);
}
输出结果如下:
1
4
9
16
25
SelectMany方法是用于对序列中的每个元素执行指定操作,并将结果展平为一个新的序列。示例代码如下:
var words = new List<string>() { "hello", "world", "dot", "net" };
var letters = words.SelectMany(w => w.ToCharArray());
foreach (var letter in letters)
{
Console.WriteLine(letter);
}
输出结果如下:
h
e
l
l
o
w
o
r
l
d
d
o
t
n
e
t
OrderBy方法用于按升序对序列中的元素排序,而ThenBy方法用于在Orderby的基础上再进行升序排序,它们都返回一个新的排序后的序列。示例代码如下:
var words = new List<string>() { "net", "world", "hello", "dot" };
var sortedWords = words.OrderBy(w => w.Length).ThenBy(w => w);
foreach (var word in sortedWords)
{
Console.WriteLine(word);
}
输出结果如下:
dot
net
hello
world
Join方法用于根据指定条件对两个序列进行匹配,并返回一个新的序列。示例代码如下:
var customers = new List<Customer>()
{
new Customer{ Id = 1, Name = "Alice" },
new Customer{ Id = 2, Name = "Bob" }
};
var orders = new List<Order>()
{
new Order{ Id = 1, CustomerId = 1, Product = "Widget" },
new Order{ Id = 2, CustomerId = 2, Product = "Gadget" }
};
var customerOrders = customers.Join(
orders,
customer => customer.Id,
order => order.CustomerId,
(customer, order) => new { customer.Name, order.Product }
);
foreach (var order in customerOrders)
{
Console.WriteLine($"{order.Name} bought {order.Product}");
}
输出结果如下:
Alice bought Widget
Bob bought Gadget
以上介绍了几个LINQ独特方法的用法,它们可以大量简化对数据的查询和处理,提高代码的可读性和可维护性。在实际开发中,熟练地使用LINQ独特方法可以大大提高编程效率。