我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。为了开发有效的代码,我需要熟悉什么样的集合类?像IList,对手IList<T>
,List
,List<T>
就够了吗?
非常感谢大家,给了我很好的指导。
答案 0 :(得分:7)
除了List<T>
和Dictionary<TKey, TValue>
之外,我还建议您熟悉IEnumerable<T>
界面(以及围绕它的扩展方法),最重要的是,暴露{{ {1}}作为第一手选择,直到证明您需要从方法中返回“更丰富”的界面。
答案 1 :(得分:1)
大部分时间我坚持使用List<>
和Dictionary<>
,但随着LINQ to Objects的引入,我发现我需要再实例化这些类是非常罕见的。我也将我的列表传递给IEnumerable<>
更多。
有关可用馆藏的完整摘要,请参阅Commonly Used Collection Types。
答案 2 :(得分:0)
每个系列都有它的优点和用途。我发现最常使用List<T>
和Dictionary<TKey, TValue>
。只要知道这两个,你就可以合理有效。
然而,为了最有效,你应该至少熟悉所有这些目的,以便你可以选择正确的目的。例如,您的集合是否代表要做的事情的队列?或者是Stack?物品的价值是否也作为其身份,你有很多,你需要快速检索它们,然后Hashset可能就是你所需要的。
答案 3 :(得分:0)
您需要熟悉哪些内容取决于您需要做什么。
如果您想了解集合类,请查看System Collections page on MSDN。
在我看来,了解实现ICollection,IDictionary,IEnumerable和IList的任何内容都是件好事。
答案 4 :(得分:0)
Dictionary<K,V>
和OrderedDictionary<K,V>
对于存储强类型键值对很有用。
答案 5 :(得分:0)
实现HashSet<T>
的新集合类ICollection<T>
,如果您要添加预先存在的值,则为Add(...)
返回false,对于工具箱来说也是一个很好的