Запросы в SortedList - C#

Узнай цену своей работы

Формулировка задачи:

У меня есть SortedList, в который добавлены элементы разных классов (типов). Как можно написать запрос который считал бы количество элементов определенного вида, печатал элементы определенного вида? Вообщем хочется узнать как можно в SortedList найти элементы заданного типа? Есть вот что, формирую коллекцию и печатаю ее:
 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("КОЛЛЕКЦИЯ СФОРМИРОВАНА");
Как например мне определить сколько элементов типа Birds в mySL? Спасибо заранее)

Решение задачи: «Запросы в 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);
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5