我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。为了开发有效的代码,我需要熟悉哪些集合类?像IList,还有对应的IList<T>
,List
,List<T>
够了吗?收藏集 - 要记住的项目
非常感谢大家,给我一个很好的指导。
我是C#的新手。在ASP.NET 3.5(C#3.0)中工作。为了开发有效的代码,我需要熟悉哪些集合类?像IList,还有对应的IList<T>
,List
,List<T>
够了吗?收藏集 - 要记住的项目
非常感谢大家,给我一个很好的指导。
List<T>
除了和Dictionary<TKey, TValue>
我还要催促你熟悉IEnumerable<T>
接口(以及它周围的扩展方法),首先,露出IEnumerable<T>
作为第一手选择的习惯,直到它被证明你需要从方法中返回一个“更丰富”的接口。
每个系列都有其优点和用途。我发现我最常使用List<T>
和Dictionary<TKey, TValue>
。只要知道这两点,你就可以相当有效。
然而,要达到最有效的效果,您应该至少熟悉所有这些目的,以便您可以选择正确的目标。例如,你的收藏是否代表了一系列要做的事情?或者是堆栈?一个Item的价值是否也作为它的身份,你有很多它们,你需要快速检索它们,那么Hashset可能就是你需要的。
你需要熟悉哪些取决于你需要做什么。
如果你想了解收集类,然后检查出System Collections page on MSDN。
在我看来,很好地了解实现ICollection,IDictionary,IEnumerable和IList的所有内容。
Dictionary<K,V>
and OrderedDictionary<K,V>
对于存储强类型键值对是很有用的。
大多数时候我坚持使用List<>
和Dictionary<>
,但随着LINQ to Objects的推出,我发现我很少需要实例化这些类。我也通过我的名单作为IEnumerable<>
更多。
有关可用收藏的完整摘要,请参阅Commonly Used Collection Types。
新集类HashSet<T>
它实现ICollection<T>
,并为Add(...)
返回false,如果您要添加预先存在的价值,也是一个很好的一个工具盒