c# - 避免 null 进入列表

标签 c# .net list lambda anonymous-methods

请看下面的代码

1. persons = Items.Select(item => componentResolver.ResolvePerson(new TridionUri(item.Id))).ToList();
2. persons.Each(person => person.AdditionalInfo); // gives null reference exception

ResolvePerson 看起来像:

public Person ResolvePerson(TridionUri personUri)
{
    Person person = publicationResolverService.GetPerson(personUri);
    if (author != null)
    {
        person.Id = personUri.ItemId.ToString();
    }
    return person;
}

现在的问题是,“项目”包含一个不存在该人的 ID。所以我的“ResolvePerson”返回 null。这会导致第 2 行出现异常。我只能控制 ResolvePerson 方法。有没有办法可以跳过没有人的 personUri 而不是返回 null?

最佳答案

您可以使用 Linq 中的 Where 来过滤空人员

persons.Where(person => person != null).Each(person => person.AdditionalInfo);

关于c# - 避免 null 进入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21301838/

相关文章:

c# - 如何在 Enterprise Architect 的标记值窗口中禁用删除选项

c# - 在 select 语句中重用匿名变量

c# - 有没有办法在 VBA 中重载类的构造函数/初始化过程?

c# - 使用 C# 检测用户是否是 Windows 8 中的管理员

.NET 程序集引用概述

.net - 使用路径前缀在生产中运行 asp.net core 应用程序

python - 在 Python 2.7 中使用多个占位符格式化程序打印字符串

r - R 中基于元素名称的子集嵌套列表

c# - 反转列表的特定部分 C#

c# - 批量操作如何影响 ConcurrentDictionary?