我有一個有序的對象列表,我想查找屬性更改的每個項目的索引,並獲取匹配索引到屬性的字典/列表對。例如,查找按字母順序排列的單詞列表中每個新的第一個字母的索引。如何使用Linq在屬性列表中查找具有不同值的列表中的第一項?
我可以用foreach循環做到這一點:
Initials = new Dictionary<char, int>();
int i = 0;
foreach (var word in alphabeticallyOrderedList))
{
if (!Initials.ContainsKey(word.First()))
{
Initials[word.First()] = i;
}
i++;
}
但我覺得應該有LINQ的這樣的一種優雅的方式。
爲什麼?它的工作原理,使用LINQ並沒有增加任何好處 – Liam
@Liam我同意查看功能時,但我發現LINQ更易讀,使我的代碼更加清晰。 – RandomStranger
@RandomStranger:並不總是,特別是當索引很重要時。如果您使用大型LINQ查詢,則還會失去一些調試,異常處理和日誌記錄功能。 –