如何在c#中进行列表推导(将一个列表转换为另一个列表的紧凑方式)

本文关键字:列表 转换 一个 另一个 方式 | 更新日期: 2023-09-27 18:15:04

在我的代码中,我经常有这样的序列:

List<type1> list1 = ...;
List<type2> list2 = new List<type2>();
foreach(type1 l1 in list1)
{
    list2.Add(myTransformFunc(l1));
}

在Python中,可以写成

list2 = [myTransformFunc(l1) for l1 in list1]

是否有一种紧凑的方式在c#中编写它?

如何在c#中进行列表推导(将一个列表转换为另一个列表的紧凑方式)

var newList = list.Select(x => YourTransformFunc(x)).ToList();

或:

var newList = list.Select(YourTransformFunc).ToList();

函数签名应该是:

type2 YourTransformFunc(type1 value)
{
}
编辑:

扩展方法SelectToListSystem.Linq命名空间

你在想这个:

list1.ForEach(x=> list2.Add(myTransformFunc(x)));