C# Linq的Select()方法 – 将序列中的每个元素投影到新形式中

  • Post category:C#

C#中的Linq是一种面向对象的数据查询语言,通过使用Linq可以使得代码更加精简、易读,也更加容易维护。其中,Select()就是用于从数据源中选择特定的数据进行检索和获取的方法。以下就是Select()的完整攻略:

Select()方法概述

在C#Linq中,Select()方法是用于将序列中的每个元素进行转换操作,这意味着它会对每一个元素运用一次表达式,并且将所有处理过的元素进行集合,生成一个新的序列。Select()方法的语法如下:

public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);

其中有两个参数:

  • source:表示要转换的源序列。
  • selector:表示要应用于每个元素的转换函数。

Select()方法的示例

下面提供两个Select()方法的示例,以便更好地理解这个方法。

示例1:针对列表进行数据转换

以一个列表中的数据转换为另一种格式的例子来解释。例如,我们有一个列表,其中每个元素都为一个Person类的实例对象,其中包含了姓名和年龄两个属性。现在我们要通过Select()方法将这个列表中的每个Person实例对象转换为字符串类型,其中字符串的格式为“名字:年龄”,并生成一个新的列表。代码如下:

List<Person> persons = new List<Person>{
    new Person("张三", 18),
    new Person("李四", 20),
    new Person("王五", 22)
};

List<string> personStrList = persons.Select(p => p.Name + ":" + p.Age.ToString()).ToList();

在上面的代码示例中,我们定义了一个Person类,包含姓名和年龄两个属性。然后我们通过List类型的persons列表,使用Select()方法将每个Person实例对象转换为字符串类型,并添加到一个新的List类型的personStrList列表中。

示例2:使用Select()方法进行值类型转换

另一个常用的示例是,将一种值类型转换为另一种类型。比如,我们有一个元素类型是int的列表,现在要将这个列表中的每一个元素都转化为字符串类型。代码如下:

List<int> numList = new List<int> { 1, 2, 3, 4, 5 };
List<string> strList = numList.Select(num => num.ToString()).ToList();

在这个示例中,我们通过List类型的numList列表,使用Select()方法将每个int类型的元素转化为了string类型,并添加到一个新的List类型的strList列表中。

综上所述,Select()方法是一个很方便的工具,经常用于数据转换的操作中。