Как сделать списки (компактный способ преобразования списка в другой список) в С#?
В моем коде у меня часто есть такие последовательности, как:
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]
Есть ли компактный способ записи в С#?
Ответы
Ответ 1
var newList = list.Select(x => YourTransformFunc(x)).ToList();
Или:
var newList = list.Select(YourTransformFunc).ToList();
Подпись Func должна быть:
type2 YourTransformFunc(type1 value)
{
}
Edit:
Методы расширения Select
и ToList
находятся в пространстве имен System.Linq
.
Ответ 2
Вы думаете об этом:
list1.ForEach(x=> list2.Add(myTransformFunc(x)));