繁体   English   中英

如何在LINQ的select函数中调用函数

[英]How do I call function in select function in LINQ

我正在使用LINQ但是在LINQ select查询中调用CheckValuedoubleOrNot()函数时遇到问题。

如何在LINQ中的“选择查询”中调用函数? 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;
}

为什么要使用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)

如果我对您的理解正确,那么您将需要以下内容:

listBoardData.Select(d => CheckValuedoubleOrNot(d.FromDuration)))
             .Where(v => !v);

在“ Select ,将集合的元素重新映射到IEnumerable<ActionResult> ,即double或bool的元素。 Where筛选出假值并仅包含双精度元素的地方。

已解决

listBoardData.Select(x => CheckValuedoubleOrNot(x.FromDuration)!= null);

public static double CheckValuedoubleOrNot(string value){double price; double returnType = 0.0; 如果(Double.TryParse(value,out price)){returnType = price; } return returnType; }

我收到错误有两个原因

  1. 我使用的返回类型ActionResult与功能无关。
  2. 我没有使用静态键盘

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM