我正在尝试编写一个lambda表达式来查看一个对象数组('fields'),这些对象可能包含也可能没有特定的项目.我想检索它们存在的值; 如果数组中没有字段的代码为"SomeCode",则没有值可以检索.我很好奇是否有更简洁的方法来编写下面的内容,因为我需要为很多字段执行此操作并且想要完成两次"FirstOrDefault"调用.
if (fields.FirstOrDefault(x => x.Code == "SomeCode") != null)
{
obj.CodeValue = fields.FirstOrDefault(x => x.Code == "SomeCode").Value;
}
Run Code Online (Sandbox Code Playgroud)
编辑:感谢您以"仅限Lambda"的方式做到这一点的任何见解; 我想提高我在这方面的技能,并认为有一些东西比调用它两次或只是将它分配给一个临时对象更干净.
只需缓存返回值FirstOrDefault,然后进行比较.
var item = fields.FirstOrDefault(x => x.Code == "SomeCode");
if (item != null)
{
obj.CodeValue = item.Value;
}
Run Code Online (Sandbox Code Playgroud)
在当前代码中,您要查询两次,一次查询null,稍后查询值.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |