使用C#中的LINQ选择运算符入门
LINQ SELECT Operator是一种投影运算符,将项目集合作为输入,在集合中的项目上执行某种投影,并返回相同数量的输出元素。在集合上执行的投影由Lambda表达式或传递给SELECT运算符的谓词指定。
C#中的基本LINQ选择示例
在以下示例中,LINQ SELECT语句已被用于将整数数组中的所有元素乘以2,并返回投影集合:
int []数字= {4,2,5,3,9,5,1,7,66,44,7,5,22,15};Ienumerablenummultipried = number.select(n => n * 2);foreach(nummultiled中的int n){console.write(n +“);}
在上面的代码片段中,一个整数阵列,命名为数字,已经使用了一些随机数来实例化。SELECT Operator在此数字数组上运行,并返回每个项目乘以两个的集合。SELECT Operator应用于数字阵列的流畅语法。通过以选择操作员的Lambda表达式“n => n * 2”在此处执行真实诀窍。
使用linq选择使用字符串类型集合
LINQ SELECT Operator也可用于操作集合中的字符串类型项。例如,集合中的项目的索引可以使用项目名称附加。以下示例中展示了该概念:
list国家=新列表 {“美国”,“加拿大”,“澳大利亚”,“英格兰”,“中国”,“中国”,“俄罗斯”};Ienumable Orderedcon = Countrans.Select((n,i)=> i +“ - ”+ n);foreach(Orderedcon中的字符串国家){console.writeline(国家);console.readline();
在上面的示例中,一系列名为国家/地区的字符串类型列表集合已被实例化了一些随机国家名称。LINQ SELECT Operator已应用于Coluitial Collection。将λ表达式传递给SELECT语句“n,i)=> i +” - “+ n”,包含两个变量n和i。The first variable ‘n’ corresponds to the item and the second variable ‘i’ corresponds to the index of the item in the collection the expression “=> i+”-” + n” states that return the item index appended with item’s value separated by ‘-’. If the collection returned by this Select operator is printed on the console, it will have the following output.
0-美国
1-加拿大
2-澳大利亚
3-英格兰
4-中国
5俄罗斯
使用LINQ SELECT来更改字符串项的字符情况
类似地,当LINQ SELECT Operator应用于字符串类型集合时,可以传递给相应SELECT语句的LAMBDA表达式的多个字符串函数。例如,在最后一个示例中使用的国家/地区集合中的所有元素都可以使用以下SELECT语句转换为小写。
IenumableOrderedcon = Countrans.Select(n => n.tolower());
此选择操作员返回一个字符串类型的IEnumerable集合,该类型将包含小写国家/地区集合中的所有项目。
同样,要将集合中的所有项目转换为大写,可以使用以下SELECT语句:
选择(n => n.toupper());
有兴趣了解更多关于C#的信息吗?在Udemy.com拍摄课程。
使用LINQ SELECT查找每个字符串项的长度
要查找字符串类型集合中所有项目的长度,LINQ SELECT语句可按以下方式使用:
list国家=新列表 {“美国”,“加拿大”,“澳大利亚”,“英格兰”,“中国”,“中国”,“俄罗斯”};Ienumerable Cullengs = Countrans.Select(n => n.length);foreach(int国家/地区){console.writeline(国家);console.readline();
上面示例的输出包含在控制台输出上打印的每个单独的国家名称的长度。
使用linq选择在c#中替换子串
LINQ选择操作员可用于替换字符串类型集合的每个项目中的子字符串。这也通过Lambda表达完成。以下示例演示了这一概念:
list国家=新列表 {“美国”,“加拿大”,“澳大利亚”,“英格兰”,“中国”,“中国”,“俄罗斯”};Ienumable replicedCon = Countrans.Select(n => n.replace(“我们”,“ea”));foreach(replyedcon中的字符串国家){console.writeline(国家);}
在自定义类型上实现LINQ选择操作员
几乎每个LINQ运算符都可以以类似于它们在原始类型上实现的方式在自定义类型上实现。同样,LINQ选择操作员也可以在自定义类型上运行。假设有一个自定义类型的类人,用于存储任何人的姓名,年龄和诞生日期。这个课程如下所示:
班级人{公共字符串名称;公共INT年龄;公共日期DOB;公共人(字符串名称,int年龄,datetime dob){this.name = name;这是=年龄;this.dob = dob;}}
在主要方法中,假设人类类的4对象已实例化并存储在人类型的列表集合中。主要方法如下所示:
人P1 =新人(“亚当”,22,新的DateTime(1992,2,5));人P2 =新人(“Tori”,19,新的DateTime(1995,10,6));人P3 =新人(“詹姆斯”,29,新的DateTime(1985,11,2));人P4 =新人(“SOFI”,24,新的DateTime(1990,4,10));列表personlist = new list {p1,p2,p3,p4};
要仅在人格列表集合中选择人物对象的名称变量的值,可以使用LINQ选择运算符。以下示例演示了这一概念:
IenumerableOrderedNames = personList.select(n => n.name);foreach(stringednames中的字符串名称){console.writeline(name);}
在上面的示例中,SELECT Operator仅在人格列表集合中选择项目的名称。这是通过Lambda表达式“n => n.name”完成的,该表达式从人格列表集合中的每个项目中的“n”完成,选择“n.name”。
使用其他LINQ运算符链接LINQ选择操作员
LINQ选择操作员可以与其他运算符链接。例如,要在人格列表集合中的人类型项目中选择所有名称,由它们的长度订购,可以在Orderby运算符之后按如下方式链接选择操作员:
OrderedNames = personlist.orderby(n => n.name.length).select(n => n.name);