將IEnumerable
轉換爲查看字典式結構但每個值具有多個鍵的最佳方式是什麼?
我正在尋找的東西,大致做同樣的事情,因爲這,並且在一般的方式:將IEnumerable轉換爲每個值具有多個鍵的查找
var wordsByLetter = new Dictionary<char, HashSet<string>>();
foreach (string word in words)
{
foreach (char letter in word.Distinct())
{
if (!wordsByLetter.ContainsKey(letter))
{
wordsByLetter.Add(letter, new HashSet<string>());
}
wordsByLetter[letter].Add(word);
}
}
所以結果是一個字典映射使用含有該組詞中的每個字母信。
例如,如果words
包含{"foo", "faz", "zoo"}
然後將得到的字典將包含:
'a' -> {"faz"}
'f' -> {"foo", "faz"}
'o' -> {"foo", "zoo"}
'z' -> {"faz", "zoo"}
我可以把我的代碼示例爲一個擴展方法,但有一個內置的功能或更好的算法使用?
你怎麼打算用這個數據結構?在這種情況下,每個值的多個鍵是什麼意思? – 2010-01-12 23:46:55
@lpthnc:我編輯了這個問題,試圖澄清。 – Whatsit 2010-01-12 23:55:45
我接受後編輯我的答案,您可能會對新版本感興趣... – 2010-01-13 00:11:19