我有一个代表植物的对象列表-每个对象都有代表一系列可忍受环境条件的成员属性。

我想重新排序此列表,以便按照适用性对植物对象进行排名。

我想根据其温度/ pH范围的中间值与所提供的环境数据之间的接近程度,为列表中的每个项目赋予温度/ pH适应性的等级。

然后,我将平均排名并将列表按此数字排序。

但是,我不确定跟踪列表中每个项目的排名的最佳方法是什么。是否有人对如何最好地做到这一点有任何建议?

最佳答案

您可以这样做:

var plants = new Plant[] { new Plant { T = 1, Ph = 2 },  new Plant { T = 2, Ph = 2 } };

var ps = from p in plants
         let magicNumber = p.T/p.Ph // Or some other algorithm
         orderby magicNumber
         select p;


然后,您可以从Plant的属性中创建所需的任何数字,而无需实现比较器。

10-04 14:40