Запросы в SortedList - C#
Формулировка задачи:
У меня есть SortedList, в который добавлены элементы разных классов (типов). Как можно написать запрос который считал бы количество элементов определенного вида, печатал элементы определенного вида?
Вообщем хочется узнать как можно в SortedList найти элементы заданного типа?
Есть вот что, формирую коллекцию и печатаю ее:
Как например мне определить сколько элементов типа Birds в mySL?
Спасибо заранее)
Mammals a1 = new Mammals("Кошка", "Муська", 3, "Хищные");
Mammals a2 = new Mammals("Дельфин", "Лори", 80, "Китообразные");
Mammals a3 = new Mammals("Тушканчик", "Туня", 0.1, "Грызуны");
Artiodactyls b1 = new Artiodactyls("Лошадь", "Стрела", 90, false);
Artiodactyls b2 = new Artiodactyls("Корова", "Ночка", 100, true);
Artiodactyls b3 = new Artiodactyls("Олень", "Иммануил", 150, true);
Birds c1 = new Birds("Орел", "Боря", 2, 100);
Birds c2 = new Birds("Синица", "Синька", 0.3, 40);
Birds c3 = new Birds("Ворон", "Дрон", 2, 50);
mySL.Add(a2.Type, a2.Name);
mySL.Add(a3.Type, a3.Name);
mySL.Add(b1.Type, b1.Name);
mySL.Add(b2.Type, b2.Name);
mySL.Add(b3.Type, b3.Name);
mySL.Add(c1.Type, c1.Name);
mySL.Add(c2.Type, c2.Name);
mySL.Add(c3.Type, c3.Name);
Show(mySL);
Console.WriteLine("КОЛЛЕКЦИЯ СФОРМИРОВАНА");Решение задачи: «Запросы в SortedList»
textual
Листинг программы
static int GetCountAndWrite(SortedList list, Type key)
{
int count = 0;
IEnumerator enumerator = list.Values.GetEnumerator();
while (enumerator.MoveNext())
{
if (enumerator.Current.GetType() == key)
{
Console.WriteLine(enumerator.Current);
count++;
}
}
return count;
}
}
class One
{
int number = 1;
string name = "sdsd";
public override string ToString()
{
return string.Format("Name = {0}, Number = {1}", name, number);
}
}
class Two
{
int number = 2;
string name = "dsds";
public override string ToString()
{
return string.Format("Name = {0}, Number = {1}", name, number);
}
}