c# - List Find() 抛出 Null Exception 但应该给出一个空字符串

标签 c#

<分区>

在 C# 中,我有一个包含固定数量项目的列表,准确地说是 6 个。这些在 Razor 模板中通过使用 Find() 调用。但是,如果该 Find 找不到关联的列表项,它会抛出 NullReference 异常。

问题是,如果项目不存在,则不会加载 View 。

我需要它来为变量提供一个空字符串。

我试过:

var video1 = Model.Videos.FirstOrDefault(x => x.VideoType == "Video1") ?? string.Empty;

但这仍然返回 null。

有人可以帮忙让它工作吗?

最佳答案

您可以使用 C# : The New and Improved C# 6.0 中描述的空传播运算符

一个用法示例是:

var video1 = Model?.Videos?.FirstOrDefault(x => x.VideoType == "Video1") ?? string.Empty;

以上将确保没有 NullReferenceException将在 Model 时抛出或 Videosnull .

关于c# - List Find() 抛出 Null Exception 但应该给出一个空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38134731/

相关文章:

c# - Convert.ChangeType 的更快版本

c# - Fluent Security 导致 Azure Web Role 失败

c# - 我可以为多选组合框创建 SelectedItems 属性吗

c# - 如何在 ASP.NET 中存储 session 数据?

c# - 为什么通用类型在 CIL 中的函数定义处看起来像 (!!T)

c# - 为什么在值类型上调用显式接口(interface)实现会导致它被装箱?

c# - 如何从 EF Core/.NET Core 2.0 中的实体名称获取 DbSet

c# - RequestPath 可以与默认文件一起使用,就像 dotnet 核心中的静态文件一样吗?

c# - 如何在 C# 中获取异步 TCP 对象流?

c# - ASP.NET 身份 - 简化