Bra*_*ann 5 .net c# collections .net-3.5
我偶然会使用这种结构:
Dictionary<string, List<string>> Foo = new Dictionary<string, List<string>>();
Run Code Online (Sandbox Code Playgroud)
这导致了这种代码:
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());
}
Run Code Online (Sandbox Code Playgroud)
你认为编写自定义的DictionaryOfList类是否值得自动处理这类事情?
还有另一种懒惰地初始化这些列表的方法吗?
你可以写一个扩展方法 - GetValueOrCreateDefault()或类似的东西:
foreach (DataRow dr in ds.Tables[0].Rows)
{
Foo.GetValueOrCreateDefault( dr["Key"] ).Add( dr["Value"].ToString() )
}
Run Code Online (Sandbox Code Playgroud)
也许你甚至可以为整个初始化编写扩展方法?
| 归档时间: |
|
| 查看次数: |
1822 次 |
| 最近记录: |