List с элементом-классом, и работа с ним - C#

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

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

Стоит задача создать список, элементы которого представлены в виде классов. 1. Не получается сделать по нему поиск, ругается "An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll (Additional information: Коллекция была изменена; невозможно выполнить операцию перечисления.)" 2. Как на последнем элементе в "forech" определить, что это последний элемент в списке? Сразу буду приводить код, чтобы было понятней:
class Program
    {
        public class Message //создаём класс
        {   
            public int ID { get; set; }
            public int count { get; set; }
            public int Num_data { get; set; }
            public System.DateTime tg_time { get; set; }
        } 
        List<Message> arrList = new List<Message>(); //создаём лист с элементами класса 
            var mess12 = new Message(); //объявляем переменную класс и наполняем её тестовыми значениями 
            mess12.count =0;
            mess12.ID= 22;
            mess12.Num_data=28;
 
            for (int i=0; i < 10;i++ ) //цикл по заполнению списка значениями
            {
                mess12.count = 0+i;
                mess12.ID = 22+i;
                mess12.Num_data = 28+i;
                mess12.tg_time = DateTime.Now;
                arrList.Add(mess12);
            }
 
            //работа со списком - ищем вхождение, если нет такого элемента то добавляем в список 
            foreach (var el in arrList) //вот здесь он мне пишет что An unhandled exception of type 'System.InvalidOperationException' occurred in mscorlib.dll (Additional information: Коллекция была изменена; невозможно выполнить операцию перечисления.)
            {
                if (el.ID == 33)
                {
                    Console.WriteLine("Вхождение");
                }
                else
                {
                   if (//вот здесь нужно как-то проверить, что элемент на котором мы сейчас находимся равен arrList.Count) и тогда дописать новый элемент
                    mess12.count = 1;
                    mess12.ID = 33;
                    mess12.Num_data = 28;
                    mess12.tg_time = DateTime.Now;
                    arrList.Add(mess12);
                }

            }
            foreach (var el in arrList)
            {
                Console.WriteLine(el.ID + " " + el.count + " " + el.Num_data + " " + el.tg_time);
            }
Прошу помощи!

Решение задачи: «List с элементом-классом, и работа с ним»

textual
Листинг программы
if (arrList.Where(x => x.ID == 33).Count() == 0)
{
    //если нет элемента с ID равным 33, то добавляем
}

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы