什么是 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>
类一样。
我认为 OP 实际上试图理解的是什么 implements ICollection<string>
,因为显然new ICollection<string>()
不会飞。
正如 Micah 指出的那样,List<string>
实现ICollection<string>
. 如果你想知道还有什么,看看 ILSpy,找到ICollection<T>
类型,分析它,看看是什么实现了它。这是我的一些结果
... 和更多
此外,一个普通的 ol'string
数组也实现了ICollection<string>
集合是一组具有相同类型的对象(在您的示例中为字符串)。
从文档中:
任何类型的对象都可以分组到 Object 类型的单个集合中,以利用语言中固有的构造。例如,C# foreach 语句(Visual Basic 中的 for each)要求集合中的所有对象都是单一类型。
ICollection是集合的接口定义。