迭代器和集合
前面曾提到,将介绍迭代器如何用于迭代存储在字典类型的集合中的对象,而不必处理DictionaryItem
对象。在本章下载代码的DictionaryAnimals
文件夹中,可以找到接下来这个项目的代码。下面是集合类Animals
:
public class Animals : DictionaryBase
{
public void Add(string newID, Animal newAnimal)
{
Dictionary.Add(newID, newAnimal);
}
public void Remove(string animalID)
{
Dictionary.Remove(animalID);
}
public Animal this[string animalID]
{
get
{
return (Animal)Dictionary[animalID];
}
set
{
Dictionary[animalID] = value;
}
}
}
可在这段代码中添加如下的简单迭代器,以便执行预期的操作:
public new IEnumerator GetEnumeator()
{
foreach(object animal in Dictionary.Values)
yield return (Animal)animal;
}
现在可使用下面的代码来迭代集合中的Animal
对象了:
foreach(Animal myAnimal in animalCollection)
{
Console.WriteLine("New {0} object added to custom collection, Name = {1}", myAnimal.ToString(), myAnimal.Name);
}
🔚