C# 如何使用IEnumerable.max扩展名从小于输入值的double列表中获取最大值

C# 如何使用IEnumerable.max扩展名从小于输入值的double列表中获取最大值,c#,max,ienumerable,extension-methods,C#,Max,Ienumerable,Extension Methods,我试图从一个双倍列表中获得最大值,该列表低于特定的输入值。 代码: List tmpList=新列表{1.2d、2.8d、3.4d、0.4d、6.3d}; 双输入值=3.1d; int countofvaluesbelownput=tmpList.Count(z=>zzzx.age)获取人员的最大年龄。在这里,您可以从每个元素中选择一些内容 另一方面,Count接受谓词,它基本上是一个过滤器。它是一个函数,用于获取项目并返回true或false在获取最大值之前,您可以使用以下方法筛选列表: do

我试图从一个双倍列表中获得最大值,该列表低于特定的输入值。 代码:

List tmpList=新列表{1.2d、2.8d、3.4d、0.4d、6.3d};
双输入值=3.1d;
int countofvaluesbelownput=tmpList.Count(z=>zz

我在最后一行得到一个编译错误,说“不能隐式地将bool转换为double”。我做得不对的是什么?感谢您的帮助,如果这是重复的,请道歉-我已尽了最大努力使用google。

在获取最大值之前,您可以使用筛选列表,如下所示:

double maxBelowInput = tmpList.Where(z => z < inputValue).Max();
double-maxBelowInput=tmpList.Where(z=>z
当前代码无法工作的原因是,您正在使用的
Max
重载需要的是选择器,而不是谓词

选择器是获取项并输出相关值(通常是项的属性)的函数。例如,如果列表的类型为
Person
,则可以使用
.Max(x=>x.age)
获取人员的最大年龄。在这里,您可以从每个元素中选择一些内容


另一方面,
Count
接受谓词,它基本上是一个过滤器。它是一个函数,用于获取项目并返回
true
false

在获取最大值之前,您可以使用以下方法筛选列表:

double maxBelowInput = tmpList.Where(z => z < inputValue).Max();
double-maxBelowInput=tmpList.Where(z=>z
当前代码无法工作的原因是,您正在使用的
Max
重载需要的是选择器,而不是谓词

选择器是获取项并输出相关值(通常是项的属性)的函数。例如,如果列表的类型为
Person
,则可以使用
.Max(x=>x.age)
获取人员的最大年龄。在这里,您可以从每个元素中选择一些内容


另一方面,
Count
接受谓词,它基本上是一个过滤器。这是一个函数,它接受该项并返回
true
false

Try
tmpList.Where(z=>z
Try
tmpList.Where(z=>z
谢谢!那很有帮助,谢谢!这很有帮助。