我目前有一个具有以下结构的对象列表:
public class DataPointSet {
public string target{ get; set; }
public List<List<decimal>> datapoints{ get; set; }
}
要附加到此列表的所有内容都有效,但我需要根据datapoints
列表中每个元素的第一个索引的平均值对其进行排序。我目前Linq得到了平均值:
datapoints.Select(innerList => innerList.First()).Average()
有没有办法根据datapoints
列表中每个元素的第一个元素的平均值对此列表进行排序?
对不起,如果这令人困惑,任何帮助都会很棒,谢谢!
答案 0 :(得分:2)
由于datapoints
是集合的集合,因此需要在传递给First()
的lambda中调用Average
,如下所示:
IEnumerable<DataPointSet> datapoints = ...
var ordered = datapoints
.OrderBy(pointSet => pointSet.datapoints.Average(point => point.First()));
答案 1 :(得分:0)
为数据点创建一个类并覆盖比较:
try
{
this.plataformasBindingSource.EndEdit();
this.plataformasTableAdapter.Update(this.myDataSet.plataformas);
this.myDataSet.AcceptChanges();
} catch(System.Exception ex)
{
MessageBox.Show("Error");
}
然后,您可以在列表中调用排序。