【发布时间】:2011-10-23 06:55:37
【问题描述】:
很难将其概括为 1 行问题。我有这样的课:
class Item
{
int Count {get; set;}
double Value {get; set;}
}
还有一个 List<Item> 包含任意数量的 Item 值。
如何获得Item 最低Count 和最高Value?
性能并不重要,但优雅才是最重要的,因为我不希望有巨大的嵌套循环来执行此操作,除非没有优雅的方式,即 Linq 等。
编辑:
这是一个示例列表,其中可能包含这些Items:
{Count, Value}
{2, 10}, {6, 60}, {5, 21}, {4, 65}, {2, 35}, {4, 18}, {3, 55}, {7, 99}, {2, 25}
所以这里我想要的值是{2, 35},因为它在所有项目中具有最低的Count,而对于具有相同Count 值的项目,它具有最高的Value。
【问题讨论】:
-
您想要返回两个项目,一个具有最低的计数和一个具有最高值的项目,或者您只希望返回一个项目,其中 Count 是最低的并且来自该项目的值最高?
-
这是两个独立的查询吗?此外,它必须是
List<T>,还是您愿意维护一个专门构建的数据结构,以便按需高效地执行所需的查询? -
@BigL:对不起,我的意思是单个项目的
Count最低,但Value最高。 -
@Joan:如果计数最低的项目不是价值最高的项目怎么办?还是这是一个多目标优化?
-
@Ani:我使用
List<T>,但我不确定你的意思。你的意思是像 IEnumerable这样的东西?我猜这可能无关紧要。
标签: c# .net linq collections