У меня есть список С#, в котором есть несколько столбцов и строк данных, и я пытаюсь получить несколько строк, применяя различные в одном столбце списка.
Например, у меня есть следующие данные в 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());
но не работает по очевидным причинам. Могу ли я узнать лучший способ справиться с этим?
Вам нужна GroupBy
listTempStrikes = AxiomSubSet.GroupBy(x => x.Strk).Select(g => g.First()).ToList();
Вы также можете использовать метод DistinctBy
из библиотеки MoreLINQ
listTempStrikes = AxiomSubSet.DistinctBy(x => x.Strk).ToList();