0

我有一个对象列表,我想用新的索引键将它们变成字典。这是一个简单的例子:

原文:
《阿尔法》
《贝塔》
《查理》

我想要:
1、“阿尔法”
2、“贝塔”
3、“查理”

我可以这样解决:

void Main()
{
    var slist = new List<string>();
    slist.Add("alpha");
    slist.Add("beta");
    slist.Add("charlie");

    int i=0;
    var v = slist.ToDictionary (s => i++ );

    slist.Dump();
    v.Dump();
}

有没有更短/更智能的方法来解决这个问题?例如避免 int i = 0 在查询前的行中?

4

2 回答 2

2

您可以使用的重载Select来获取索引。

var v = slist.Select((s,i) => new {s, i})
             .ToDictionary(x => x.i + 1,  x => x.s);
于 2013-01-07T13:06:43.163 回答
0
var v = slist.ToDictionary(s => slist.IndexOf(s) + 1);
于 2013-01-07T13:06:00.793 回答