在我的代码中,我经常有这样的序列:
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# 编写它?
在我的代码中,我经常有这样的序列:
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# 编写它?
var newList = list.Select(x => YourTransformFunc(x)).ToList();
或者:
var newList = list.Select(YourTransformFunc).ToList();
函数签名应该是:
type2 YourTransformFunc(type1 value)
{
}
编辑:
扩展方法Select
和ToList
在System.Linq
命名空间中。
你正在考虑这个:
list1.ForEach(x=> list2.Add(myTransformFunc(x)));