Получение всех строк списка, которые различаются в одном столбце [дубликаты]

1

У меня есть список С#, в котором есть несколько столбцов и строк данных, и я пытаюсь получить несколько строк, применяя различные в одном столбце списка.

Например, у меня есть следующие данные в C# list AxiomSubSet типа AxiomDS

Month   Strk    Strg    Price   Amount
15-May  3.80    Put     0.0410  200
15-Apr  3.80    Put     0.0410  200
15-Mar  3.80    Put     0.0410  200
15-May  4.20    Put     0.0380  100
15-Apr  4.20    Put     0.0380  100
15-Mar  4.20    Put     0.0380  100
15-May  4.25    Call    0.0620  60
15-Apr  4.25    Call    0.0620  60
15-Mar  4.25    Call    0.0620  60

Когда я применяю метод к приведенному выше list он должен иметь первую строку для каждого отдельного Strk например

Month   Strk    Strg    Price   Amount
15-May  3.80    Put     0.0410  200
15-May  4.20    Put     0.0380  100
15-May  4.25    Call    0.0620  60

и хранить вышеуказанные данные во временном списке того же типа

Я попробовал что-то вроде

List<AxiomDS> listTempStrikes = new List<AxiomDS>();
listTempStrikes = AxiomSubSet.Select(x => x.strike).Distinct().ToList());

но не работает по очевидным причинам. Могу ли я узнать лучший способ справиться с этим?

Теги:
list

1 ответ

2
Лучший ответ

Вам нужна GroupBy

listTempStrikes = AxiomSubSet.GroupBy(x => x.Strk).Select(g => g.First()).ToList();

Вы также можете использовать метод DistinctBy из библиотеки MoreLINQ

listTempStrikes = AxiomSubSet.DistinctBy(x => x.Strk).ToList();
  • 0
    Было полезно, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню