无法隐式转换类型'System.Collection.Generic.IEnumerable <double>为double“</double>

时间:2015-01-06 15:01:45

标签: c# linq

最近发布了很多。我一直试图解决这个问题。

我在方法中发送double []和double,以便计算出的文件 大于第二个值。

private static double medelvärdetBeräkning(double[] temp, double eftersökt)
{
    double störreÄn = temp.Where(o => o > eftersökt);
    return störreÄn;
}

但我得到的只是“不能隐含转换类型'System.Collection.Generic.IEnumberable to double”“

如果有人可以教我思考并提供洞察力而不是简单的解决方案,那将非常感激。欣赏它

编辑: 这显然不是所有的代码。但我要求用户输入(eftersökt),然后我希望该方法通过文本文件工作并返回大于userInput的所有值并将它们返回到列表中(这一切都有效,这只是这个方法,故障)

2 个答案:

答案 0 :(得分:3)

根据您的编辑说明return all the values,您需要:

private static List<double> medelvärdetBeräkning(double[] temp, double eftersökt)
{
        var störreÄn = temp.Where(o => o > eftersökt).ToList();
        return störreÄn;
}

该错误消息表示您返回的不是您所说的回归。存在类型不匹配的问题。检查您的退货类型与您的方法签名,以确定将来的问题。

答案 1 :(得分:1)

Enumerable.Where会返回另一个IEnumerable<T> - 所以我假设你想要

  1. 返回大于或<; li>的所有项目
  2. 返回特定项目(第一个,最后一个,最大等)
  3. 如果(1)准确无误,请更改您的方法签名:

    private static IEnumerable<double> medelvärdetBeräkning ....
    

    如果(2)准确改变你的方法体,例如:

    private static double medelvärdetBeräkning(double[] temp, double eftersökt)
    {
        double störreÄn = temp.First(o => o > eftersökt);
        return störreÄn;
    }
    

    (在此示例中,您可以使用MinMaxLastAverage等代替First,具体取决于您想要的具体项目。)