当前位置:  开发笔记 > 编程语言 > 正文

如何缓解在C#中初始化列表字典的痛苦?

如何解决《如何缓解在C#中初始化列表字典的痛苦?》经验,为你挑选了1个好方法。

我偶然会使用这种结构:

Dictionary> Foo = new Dictionary>();

这导致了这种代码:

foreach (DataRow dr in ds.Tables[0].Rows)
{
    List bar;
    if (!Foo.TryGetValue(dr["Key"].ToString(), out desks))
    {
        bar= new List();
        Foo.Add(dr["Key"].ToString(), bar);
    }
    bar.Add(dr["Value"].ToString());
}

你认为编写自定义的DictionaryOfList类是否值得自动处理这类事情?

还有另一种懒惰地初始化这些列表的方法吗?



1> tanascius..:

你可以写一个扩展方法 - GetValueOrCreateDefault()或类似的东西:

foreach (DataRow dr in ds.Tables[0].Rows)
{
    Foo.GetValueOrCreateDefault( dr["Key"] ).Add( dr["Value"].ToString() )
}

也许你甚至可以为整个初始化编写扩展方法?

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有