次のような文字列のリストがあります。
abc|key1|486997
def|key1|488979
ghi|key2|998788
gkl|key2|998778
olz|key1|045669
Dictionary<string, List<string>>
LINQ と ToDictionary を使用して、次のようなものを生成するにはどうすればよいですか
key1 : { abc|key1|486997, def|key1|488979, olz|key1|045669 }
key2 : { ghi|key2|998788, gkl|key2|998778 }
基本的には、ToDictionary() を使用して 2 番目の要素をキーとして抽出し、1 回で辞書を作成できるようにしたいと考えています。
私は現在これをやっています..
var d = new Dictionary<string, List<string>>();
foreach(var l in values)
{
var b = l.Split('|');
var k = b.ElementAtOrDefault(1);
if (!d.ContainsKey(k))
d.Add(k, new List<string>());
d[k].Add(l);
}
区切られた値の単一の文字列から辞書を作成することに関する質問を見てきましたが、代わりに区切られた文字列のリストから始めるときにこれを行うエレガントな方法があるかどうか疑問に思っています。