我一直想知道是否可以說State
類實現IEnumerable<Person>
和IEnumerable<City>
所以我可以通過foreach以及所有的城市,讓所有居住在該州的人。它甚至不會編譯這樣說:Error 1 'ConsoleApplication1.City' does not implement interface member 'System.Collections.IEnumerable.GetEnumerator()'
(怪異)...以下是代碼:C#實現泛型IEnumerable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Person
{
}
class City : IEnumerable<Person>
{
// City has citizens:
Person[] citizens;
IEnumerator<Person> IEnumerable<Person>.GetEnumerator()
{
foreach (Person p in citizens)
yield return p;
}
}
class State : IEnumerable<Person>, IEnumerable<City>
{
// State has cities:
City[] cities;
IEnumerator<Person> IEnumerable<Person>.GetEnumerator()
{
foreach (City c in cities)
foreach (Person p in c)
yield return p;
}
IEnumerator<City> IEnumerable<City>.GetEnumerator()
{
foreach (City c in cities)
yield return c;
}
}
class Program
{
static void Main(string[] args)
{
State s = new State();
foreach (Person p in s) ;
foreach (City c in s) ;
}
}
}
謝謝大家,我現在得到了我想知道的。 – 2012-08-08 20:17:11