在属性Linq lambda表达式c#中赋值之前进行空检查

时间:2017-08-18 05:32:35

标签: c# linq lambda

caseDto.ExtendedProperties = new Dictionary<string, string>();
foreach (var eElement in zakkennisgeving.extraElementen.ToList())
{
  if (eElement.Value != null)
    caseDto.ExtendedProperties.Add(eElement.naam.ToString(), eElement.Value.ToString());
}

如何使用lambda表达式执行此操作?

我试过这个

zakkennisgeving.extraElementen.ToList().Where(x => x.Value != null && caseDto.ExtendedProperties.Add(x.naam.ToString(), x.Value.ToString())));

但由于Dictionary.Add()没有返回任何内容所以它不是一个有效的陈述。

1 个答案:

答案 0 :(得分:3)

您可以通过链接IEnumerable.WhereIEnumerable.ToDictionary扩展方法

来实现
caseDto.ExtendedProperties =
    zakkennisgeving.extraElementen
                   .Where(element => element.Value != null)
                   .ToDictionary(element => element.naam.ToString(), 
                                 element => element.Value.ToString());