我碰巧经常使用这种结构:
Dictionary<string, List<string>> Foo = new Dictionary<string, List<string>>();
这导致了这种代码:
foreach (DataRow dr in ds.Tables[0].Rows)
{
List<string> bar;
if (!Foo.TryGetValue(dr["Key"].ToString(), out desks))
{
bar= new List<string>();
Foo.Add(dr["Key"].ToString(), bar);
}
bar.Add(dr["Value"].ToString());
}
您认为是否值得编写一个自动处理此类事情的自定义 DictionaryOfList 类?
还有其他方法可以延迟初始化这些列表吗?
最佳答案
您可以编写扩展方法 - GetValueOrCreateDefault() 或类似的方法:
foreach (DataRow dr in ds.Tables[0].Rows)
{
Foo.GetValueOrCreateDefault( dr["Key"] ).Add( dr["Value"].ToString() )
}
也许您甚至可以为整个初始化编写一个扩展方法?
关于c# - 如何减轻在 C# 中初始化列表字典的痛苦?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867785/