Получить значения MAX в массиве объектов и общее количество - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть метод, который принимает массив объектов, и количество элементов массива не является конкретным.Свойства объекта: Имя и Значение .Есть дубликаты Имен , но в сочетании с отличными Значение , например:

{"Name_1", 100}
{"Name_1", 180}
{"Name_1", 500}
{"Name_2", 40}
{"Name_2", 150}

Я хотел бы получить максимальное Значение для каждого Имя :

{"Name_1", 500}
{"Name_2", 150}

и итоговая сумма Значение , равное 650

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018
    Hello you can try this, 
    private void button3_Click(object sender, EventArgs e)
    {
        List<ClassTemp> tempList = new List<ClassTemp>();
        tempList.Add(new ClassTemp() {Name= "Name_1", Value = 100});
        tempList.Add(new ClassTemp() { Name = "Name_1", Value = 180});
        tempList.Add(new ClassTemp() { Name = "Name_1", Value = 500});
        tempList.Add(new ClassTemp() { Name = "Name_2", Value = 40});
        tempList.Add(new ClassTemp() { Name = "Name_2", Value = 150});

        var GroupList = tempList.GroupBy(x => x.Name).Select(grp => new { Name = grp.Key, MaxValue = grp.Max(x => x.Value) }).ToList();

        int totalValue = GroupList.Sum(x => x.MaxValue);

    }

    public class ClassTemp

    {
        public string Name;
        public int Value;
    }
0 голосов
/ 21 декабря 2018

Вам понадобится что-то вроде этого:

Класс:

public class Class
{
    public string Name;
    public int Value;
}

Затем сгруппируйте их вместе так:

        List<Class> ListOfClass = new List<Class>();   

        var Grouping = ListOfClass.GroupBy(x => x.Name).Select(group => new {
            Name = group.Key,
            Value = group.Max(x => x.Value)
        }).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...