我有一个单词集合,并希望为每个单词分配一个唯一的int值。我已经阅读了一段时间的LINQ并想出了这个:
var words = File.ReadAllLines(wordsFile);
var numbers = Enumerable.Range(1, words.Count());
var dict = words
.Zip(numbers, (w, n) => new { w, n })
.ToDictionary(i => i.w, i => i.n);
问题是:
答案 0 :(得分:6)
您不需要Enumerable.Range
和Zip
方法,因为您可以使用为您提供索引的Select
重载:
var dict = File.ReadLines(wordsFile)
.Select((word, index) => new { word, index })
.ToDictionary(x => x.word, x => x.index + 1);