所以我在其中有一个类和一个通用列表,但它是私有(private)的。
class Contacts
{
List<Contact> contacts;
...
}
我想让类(class)像这样工作:
foreach(Contact in contacts) .... ;
像这样(不工作):
Contacts c;
foreach(Contact in c) .... ;
在上面的示例中,Contact 类实例 c 必须返回联系人中的每个项目(c 的私有(private)成员)
我该怎么做?我知道它必须是带有 yield return 的 IEnumerable,但是在哪里声明呢?
最佳答案
实现IEnumerable接口(interface):
class Contacts : IEnumerable<Contact>
{
List<Contact> contacts;
#region Implementation of IEnumerable
public IEnumerator<Contact> GetEnumerator()
{
return contacts.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
#endregion
}
关于c# - 如何在 C# 中将类设为 IEnumerable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135443/