我有一个对象列表,我希望将其转换为带有新索引键的字典。这是一个简单的例子:
原件:
“阿尔法”
“测试版”
“查理”
我想:
1,“alpha”
2,“beta”
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吗?
答案 0 :(得分:2)
您可以使用Select
的重载来获取索引。
var v = slist.Select((s,i) => new {s, i})
.ToDictionary(x => x.i + 1, x => x.s);
答案 1 :(得分:0)
var v = slist.ToDictionary(s => slist.IndexOf(s) + 1);