gpt4 book ai didi

c# - 你如何将 IEnumerable 转换为 Int32

转载 作者:太空狗 更新时间:2023-10-29 22:04:29 26 4
gpt4 key购买 nike

我有一个 linq 查询,它将返回 1 个整数结果。我想将它分配给一个 Int32 变量以供稍后使用,但是我收到一条错误消息,“int 不包含 RatingNumber 的定义,并且没有找到接受第一个 int 类型参数的扩展方法 RatingNumber(你错过了吗? using 指令还是程序集引用?)

这是调用查询的代码

IEnumerable<int> newRatingNumber = getNewRecipeNumbers.newRatingNum();

foreach (var a in newRatingNumber)
{
ratingNumber = a.RatingNum;
}

这是查询:

 public IEnumerable<int> newRatingNum()
{
ratingTableAdapter.Fill(recipeDataSet.Rating);
var newRatingNum = (from a in recipeDataSet.Rating
where a.UserRating == 0 &&
a.FamilyRating == 0 &&
a.HealthRating == 0 &&
a.EaseOfCooking == 0 &&
a.CookingTime == 0
select a.RatingNum);
return newRatingNum;
}

我尝试使用 Convert.ToInt32 将结果转换为 int,这消除了编译错误,但是却产生了 InvalidCastException。有人有什么想法吗?

感谢帮助

克雷格

最佳答案

Linq 查询的结果不是单个 Int 值,而是一个 IEnumerable。所以你需要从中得到一个值,在你的例子中是第一个值:

var newRatingNum = (from a in recipeDataSet.Rating
where a.UserRating == 0 &&
a.FamilyRating == 0 &&
a.HealthRating == 0 &&
a.EaseOfCooking == 0 &&
a.CookingTime == 0
select a.RatingNum).FirstOrDefault();

FirstOrDefault() 将返回 Enumerable 中的第一个值,如果 Enumerable 为空,则返回 0。

关于c# - 你如何将 IEnumerable<int> 转换为 Int32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com