我有这个列表:
var items = new List<string>() { "Hello", "I am a value", "Bye" };
我希望它将其转换为具有以下结构的字典:
var dic = new Dictionary<int, string>()
{
{ 1, "Hello" },
{ 2, "I am a value" },
{ 3, "Bye" }
};
如您所见,字典键只是增量值,但它们也应该反射(reflect)列表中每个元素的位置。
我正在寻找单行 LINQ 语句。像这样:
var dic = items.ToDictionary(i => **Specify incremental key or get element index**, i => i);
最佳答案
您可以通过使用 Enumerable.Select
的重载来做到这一点它传递元素的索引:
var dic = items.Select((val, index) => new { Index = index, Value = val})
.ToDictionary(i => i.Index, i => i.Value);
关于c# - 在一行 LINQ 语句中使用增量键列表到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654193/