Ros*_*per 2 .net c# lambda list anonymous-methods
请参阅下面的代码
1. persons = Items.Select(item => componentResolver.ResolvePerson(new TridionUri(item.Id))).ToList();
2. persons.Each(person => person.AdditionalInfo); // gives null reference exception
Run Code Online (Sandbox Code Playgroud)
ResolvePerson看起来像:
public Person ResolvePerson(TridionUri personUri)
{
Person person = publicationResolverService.GetPerson(personUri);
if (author != null)
{
person.Id = personUri.ItemId.ToString();
}
return person;
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,"项目"包含一个人不存在的ID.所以我的'ResolvePerson'返回null.这导致第2行中的例外.我只能控制ResolvePerson方法.有没有办法可以跳过没有人在场的personUri而不是返回null?
您可以使用Wherefrom Linq来过滤空人
persons.Where(person => person != null).Each(person => person.AdditionalInfo);
Run Code Online (Sandbox Code Playgroud)