【发布时间】:2019-01-15 06:37:05
【问题描述】:
我有一个十进制列表。我需要确定 decimal 输入是否大于列表中存在的任何值。
Decimal threshold = 20;
List<Decimal> InputList = new List<Decimal>() { 10, 20, 35 };
请注意,此输入列表中可能有一个或多个项。
我想检查其中一项是否大于阈值,然后做其他事情。
【问题讨论】:
我有一个十进制列表。我需要确定 decimal 输入是否大于列表中存在的任何值。
Decimal threshold = 20;
List<Decimal> InputList = new List<Decimal>() { 10, 20, 35 };
请注意,此输入列表中可能有一个或多个项。
我想检查其中一项是否大于阈值,然后做其他事情。
【问题讨论】:
您可以使用Any。它检查列表中是否至少有一个元素与条件匹配。
InputList.Any(x => x > threshold);
【讨论】:
Any 将返回 false,我认为这对您来说没问题。 @Reyan 也许你应该在你的(有效)答案中添加一个if 子句,Any 作为一个声明并不是真的有用;)
如果你不熟悉 Linq,你可以写一个这样的函数:
private static bool CheckIfLarger(IEnumerable<double> list, double value){
foreach(var item in list) if(value<=item) return false;
return true;
}
编辑: 说明:您将您的值与列表中的每个数字进行比较,如果它更小,则返回 false,因为您的数字不小于列表中的所有其他数字。如果这根本没有发生,则返回 true,因为显然它不小于其他任何一个。
【讨论】:
true和false?