获取在一列上具有不同的列表的所有行
本文关键字:列表 一列 获取 | 更新日期: 2023-09-27 18:19:56
我有一个C#列表,其中有几列和几行数据,我试图通过在列表的一列上应用distinct来检索其中的几行。
例如,我在AxiomDS
类型的C# list AxiomSubSet
中有以下数据
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();
您也可以使用MoreLINQ
库中的DistinctBy
方法
listTempStrikes = AxiomSubSet.DistinctBy(x => x.Strk).ToList();