Linq Max Value из ObservableCollection - PullRequest
0 голосов
/ 04 июня 2019

У меня есть ObservableCollection с двумя свойствами string и int.Я хотел бы запросить и вернуть int со значением Max.

Пример данных:

Категория, WorkOrderVersion

AAA 1

AAA 2

AAA 3

BBB 1

BBB 2

если Category == "BBB", я бы хотел вернуть 2

Это то, что я имею в виду:

var maxWorkOrderVersion = WorkOrderDetailsObsCollection.Where(x=>x.Category == firstSelection.Category) return Max(WorkOrderVersion);`

1 Ответ

1 голос
/ 04 июня 2019

Если вы просто хотите получить наибольшее WorkOrderVersion для выбранного Category, вы можете вернуть его, используя Max:

int maxWorkOrderVersion = WorkOrderDetailsObsCollection
    .Where(x => x.Category == firstSelection.Category)
    .Max(x => x.WorkOrderVersion);

В противном случае, если выЕсли вам нужен весь объект для указанного Category, который имеет наибольшее значение WorkOrderVersion, вы можете упорядочить список по свойству (после фильтрации по Category) и выбрать один FirstOrDefault.(значение по умолчанию null будет возвращено в случае, если элементы указанного Category отсутствуют):

var maxWorkOrderVersion = WorkOrderDetailsObsCollection
    .Where(x => x.Category == firstSelection.Category)
    .OrderByDescending(x => x.WorkOrderVersion)
    .FirstOrDefault();
...