LINQ是.NET Framework中的一种强大的查询语言,能够对各种数据集合进行查询操作。LINQ提供了多个操作符,其中投影操作符Select和限制操作符where是常用的两种操作符。
Select操作符
Select操作符是一种投影操作符,用于通过从集合中选择特定的项创建新集合。Select操作符的语法如下:
IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
其中,source表示要进行选择操作的源集合,selector表示每个元素执行的转换函数。
示例1:假设有以下学生列表,需要将每个学生的姓名和年龄拼接起来,创建新的字符串集合。
List<Student> students = new List<Student>()
{
new Student(){ Name = "Tom", Age = 18 },
new Student(){ Name = "Jerry", Age = 20 },
new Student(){ Name = "Mickey", Age = 22 },
new Student(){ Name = "Minnie", Age = 19 },
};
var nameAndAgeList = students.Select(s => s.Name + "-" + s.Age);
以上代码中,通过Lambda表达式实现了将每个学生的姓名和年龄拼接起来,并将结果存储在新的字符串集合中。使用Select操作符后,返回的是一个IEnumerable
where操作符
where操作符是一种限制操作符,用于从集合中筛选出满足特定条件的元素。where操作符的语法如下:
IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
其中,source表示要进行筛选操作的源集合,predicate表示用于确定每个元素是否满足条件的函数。
示例2:假设有以下学生成绩列表,需要只显示分数大于80的学生成绩。
List<Score> scores = new List<Score>()
{
new Score(){ Name = "Tom", ScoreValue = 75 },
new Score(){ Name = "Jerry", ScoreValue = 85 },
new Score(){ Name = "Mickey", ScoreValue = 92 },
new Score(){ Name = "Minnie", ScoreValue = 78 },
};
var highScoreList = scores.Where(s => s.ScoreValue > 80);
以上代码中,通过Lambda表达式实现了筛选分数大于80的学生成绩,并将结果存储在新的集合中。使用Where操作符后,返回的是一个IEnumerable
综上所述,Select和where操作符是LINQ中常用的两种操作符,分别用于创建新的集合和筛选源集合中符合条件的元素。在LINQ查询中,可以根据业务需求组合使用多种操作符完成复杂的查询功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:LINQ投影操作符Select与限制操作符where介绍 - Python技术站