如何使用IEnumerable.Select重新计算元素?

时间:2011-04-14 22:57:11

标签: c# linq ienumerable

IEnumerable<MyType> list = new List<MyType>{
    new{Num=0, Text="ABC"},
    new{Num=0, text="DEF"},
    new{Num=0, text="GHI"} }

我需要在Num字段中获取元素索引:

IEnumerable<MyType> result = new List<MyType>{
    new{Num=1, Text="ABC"},
    new{Num=2, text="DEF"},
    new{Num=3, text="GHI"} }

是否可以使用基于LINQ的构造进行此操作?

2 个答案:

答案 0 :(得分:1)

var result = list.Select(
    (element, index) => new MyType { Num = index + 1, Text = element.Text }
);

答案 1 :(得分:0)

var newList = list.Zip(Enumerable.Range(1, list.Length),
    (item, i) => new { Num = i, item.text}).ToList();