我想要一个List
, 并生成一个Dictionary
将每个元素映射到它在List
. 我可以这样做,对于List<string>
:
var myList = new List<string>{ /* populate list */ };
var orderMap = new Dictionary<string, int>();
foreach (var element in myList)
{
orderMap[element] = myList.IndexOf(element);
}
基本上,我想列出如下列表:
Apple
Banana
Orange
并返回显示索引的地图:
Apple -> 0
Banana -> 1
Orange -> 2
我怎样才能用 Linq 做到这一点?我认为这样的事情应该有效:
orderMap = myList.Select( x => /* return a key value pair mapping x to myList.IndexOf(x) */ );
但我无法找出正确的语法。此外,您可以参考用于的委托中的列表本身Select
吗?