Создание новой коллекции из объектов, убрав повторы и изменив некоторые элементы - C#

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

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

Всем доброго вечера Собственно, создается и инициализируется класс Table, с полями time и val. Cоздается коллекция из объектов этого класса
List<Table> tb1 = new List<Table>();
она заполняется данными путем определенных вычислений, в итое получается множество экземпляров класса где конкретному значению tb1[i].time соответсвует определенное значение tb1[i].val, причем данные в обих полях могут повторяются. Делается сортировка относительно поля znach Необходимо создать новую коллекцию из объектов класса Table, например
List<Table> tb2 = new List<Table>();
, в которой будут отсутствовать повторы в поле val, а если этому значению val в оригинальной коллекции соответствовало несколько значений time, то в новой коллекции ему соответствовало бы среднее арифметическое time. Пример: Дано: t v 1 3 2 1 3 3 4 2 2 3 1 3 3 4 Что должно получиться: t v 2 1 4 2 3,5 3 3 4 прошу помочь с примерным кодом

Решение задачи: «Создание новой коллекции из объектов, убрав повторы и изменив некоторые элементы»

textual
Листинг программы
namespace Test
{
    class Table
    {
        public double T{get; private set;}
        public double V{get; private set;}
        public Table(double t, double v)
        {
            T = t;
            V = v;
        }
    }
    class Program
    {
        public static void Main (string[] args)
        {
            List<Table> lst = new List<Table>
            {
                new Table(1, 3),
                new Table(2, 1),
                new Table(3, 3),
                new Table(4, 2),
                new Table(2, 3),
                new Table(1, 3),
                new Table(3, 4)
            };
            List<Table> result = 
                (from x in lst group x by x.V into key_value
                select new Table(key_value.Average((x) => x.T), key_value.Key)).ToList();
            foreach (Table t in result)
            {
                Console.WriteLine ("{0} - {1}", t.T, t.V);
            }
        }
    }
}

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


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

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

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