What is an ICollection?

本文关键字:ICollection an is What | 更新日期: 2023-09-27 18:36:41

什么是C#中的ICollection?

private void SendEmail(string host, int port,
        string username, string password,
        string from, string to,
        string subject, string body,
        ICollection<string> attachedFiles)

What is an ICollection?

ICollection<T> 接口是 System.Collections.Generic 命名空间中类的基本接口。

ICollection<T>接口扩展IEnumerable<T>,并通过IDictionary<TKey, TValue>IList<T>扩展。

IDictionary<TKey, TValue>实现是键/值对的集合,如Dictionary<TKey, TValue>类。

IList<T>实现是值的集合,其成员可以通过索引访问,如 List<T> 类。

http://msdn.microsoft.com/en-us/library/92t2ye13.aspx

我认为OP实际上试图理解的是实现ICollection<string>的东西,因为显然new ICollection<string>()不会飞。

正如弥迦所指出的,List<string>实施ICollection<string>。如果你想知道还有什么作用,请查看 ILSpy,找到ICollection<T>类型,分析它,看看是什么实现了它。这是我的一些结果

  • 阵列段
  • 列表
  • LisT.SyncdList
  • 链接列表
  • 排序列表
  • 排序集

。等等

此外,普通的 ol' string 数组也实现了ICollection<string>

> ICollection 是一个表示集合的接口,它还包含强类型成员

下面是如何实现该接口的示例

http://support.microsoft.com/kb/307484

泛型列表实现此接口

http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

集合是一组具有相同类型(示例中为字符串)的对象。

从文档中:

任何类型的对象都可以分组到单个集合中 类型 Object 以利用 语言。例如,C# foreach 语句(对于 Visual 中的每个语句) 基本)要求集合中的所有对象都是单一类型。

ICollection 是集合的接口定义。