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)
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 是集合的接口定义。