我正在处理LINQ
但是当我在CheckValuedoubleOrNot()
的select select中调用LINQ
函数时遇到了问题。
如何在LINQ中的select Query中调用函数?
CheckValuedoubleOrNot
是我在select语句中使用的函数。
我在这一行得到错误:
listBoardData.Select(CheckValuedoubleOrNot(x=>x.FromDuration)==false));
public ActionResult CheckValuedoubleOrNot(dynamic value)
{
double price;
dynamic returnType;
if (Double.TryParse(value, out price))
{
returnType = price;
}
else
{
returnType = false;
}
return returnType;
}
答案 0 :(得分:0)
为什么你使用Select
?我建议使用Where
,这就行了:
public class DoubleResult
{
public bool IsValid { get; set;}
public double Result {get; set;}
}
public DoubleResult CheckValuedoubleOrNot(dynamic value)
{
double price;
if (Double.TryParse(value, out price))
{
return new DoubleResult { IsValid = true, Result = price };
}
else
{
return new DoubleResult { IsValid = false };
}
}
listBoardData.Where(x => !CheckValuedoubleOrNot(x.FromDuration).IsValid)
答案 1 :(得分:0)
如果我理解正确,你想要这样的东西:
listBoardData.Select(d => CheckValuedoubleOrNot(d.FromDuration)))
.Where(v => !v);
在Select
中,您将集合的元素重新映射到IEnumerable<ActionResult>
,这些元素是double或bool。在Where
中,您筛选出错误的值并仅采用双重元素。
答案 2 :(得分:0)
已发布已解决
listBoardData.Select(x =&gt; CheckValuedoubleOrNot(x.FromDuration)!= null);
public static double CheckValuedoubleOrNot(string value) { 双倍价格; double returnType = 0.0; if(Double.TryParse(value,out price)) { returnType = price; } return returnType; }
我收到错误的原因有两个
谢谢