gpt4 book ai didi

c# - LINQ,处理模型中的 Null

转载 作者:太空狗 更新时间:2023-10-30 00:29:47 24 4
gpt4 key购买 nike

我正在尝试将 AverageRating 传递给我的 View 。 AverageRating 是在 Icollection of Review 模型中查询项目的结果。评论模型具有评级属性。但是我收到这条消息:

System.ArgumentNullException

每当执行 get 时都会发生这种情况,这是可以理解的。但是,当我的代码如下所示时,我该如何最好地处理我的模型或其他地方的空异常:

public class MyModel
{

//Querying this navigation property
public ICollection<Review> Reviews { get; set; }

public double? AverageRating
{
get
{
//check that this is not null / handle null
return Math.Round(Reviews.Average(c => c.Rating), 1);
}

}

}
public class Review
{
[Key]
public int ReviewID { get; set; }
public int Rating { get; set; }
public string Comment { get; set; }
public int CoachID { get; set; }
public int? StudentID { get; set; }


public Coach Coach { get; set; }
public Student Student { get; set; }
}

最佳答案

此实现可以满足您的需要:

public double? AverageRating
{
get
{
return Reviews?.Average(x => x?.Rating);
}
}

它将处理 Reviewsnull(它将返回 null),因为使用了 ? 评论之后。

由于 ? 的使用,它将处理为 null 的个别 Reviews(在计算平均值时它们将被忽略)在 x 之后。

关于c# - LINQ,处理模型中的 Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47743199/

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