收藏 - 要记住的项目

时间:2009-10-29 11:24:17

标签: c# collections

我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。为了开发有效的代码,我需要熟悉什么样的集合类?像IList,对手IList<T>ListList<T>就够了吗?

非常感谢大家,给了我很好的指导。

6 个答案:

答案 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,对于工具箱来说也是一个很好的