一个月前我问了这个问题:Trying to find the top 3 properties of a POCO instance。得到了答案,效果很好。
现在,我正在尝试查找 POCO 对象的前 3 个属性(就像我之前的问题一样),但每个属性都有一个WEIGHT。财产的价值是第一位的。然后权重排在第二位……如果两个或多个属性具有相同的值。
让我们扩展我之前问题中的数据作为示例的起点:-
权重数值越低越好。1 == 最好。10是最差的。顺便说一句,每个重量编号都是唯一的。重量数字可以是任何东西......我只需要以某种方式加权它们......
eg.
Math (weight: 1) - 83%
Engrish (weight: 6) - 82%
Chemistry (weight: 2) - 81%
Drama (Weight: 3) - 100%
Geography (weight: 4) - 82%
Sport (Weight: 5)- 81%
etc..
排名前 3 位的结果依次为:
- 戏剧
- 数学
- 地理(不是英语。地理 W = 4,英语 W = 6)
我想知道这是否可以通过 Linq 来实现(就像我之前的问题/答案一样)。我对字典等感到满意。我还猜想我可能需要重载 Comparer 方法?
为任何帮助干杯:)