按子元素的平均顺序列表?

时间:2017-05-30 15:48:42

标签: c# asp.net linq

我目前有一个具有以下结构的对象列表:

public class DataPointSet {
     public string target{ get; set; }
     public List<List<decimal>>  datapoints{ get; set; }
}

要附加到此列表的所有内容都有效,但我需要根据datapoints列表中每个元素的第一个索引的平均值对其进行排序。我目前Linq得到了平均值:

datapoints.Select(innerList => innerList.First()).Average()

有没有办法根据datapoints列表中每个元素的第一个元素的平均值对此列表进行排序?

对不起,如果这令人困惑,任何帮助都会很棒,谢谢!

2 个答案:

答案 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");
}

然后,您可以在列表中调用排序。

相关问题