2008-12-16 57 views
4

我想要做的是使用LINQ的風采,同時保持一個迭代....LINQ,迭代,選擇和投影

基本

Class A 
{ 
    int Position; 
    string Name; 
} 

,如果我有一個字符串列表,我想他們投射到List<A>但有位置在投影填充...

List<string> names; //filled with strings 

List<A> foo = (from s in names select s).ToList(); 

,但有它也遍歷和填充的位置..

這可能嗎?

{{Position:0,Name: "name1"},{Position:1, Name: "name2"}, {Position:2, Name: "name3"}....} 

回答

10

你可以這樣做:

var listOfStrings = new List<string> {"name1", "name2", "name3", "name4"}; 
    var foo = listOfStrings.Select((value, position) => new {position, value}).ToList(); 

位置將被增加爲0開始的索引,檢查Select Method超載。