我的问题是,如果linq操作的结果有任何值,我该如何操作:
简单模型类:
public class Model{
public string property;
public void someOperation(){}
}
下面是一个简单的主方法:
List<Model> list... //supose it has some model objects.
list.Where(x=> x.property=="valueNotInTheList").First().someOperation(); //will be a exception
list.Where(x=> x.property=="valueNotInTheList").FirstOrDefault().someOperation(); //will be a exception
我的问题是,有没有一种方法像空操作符?或者只有当列表包含相同linq操作中的元素时才执行操作。事实上,我只需要在一个linq操作中执行这样的操作:
if(list.Any(x=>x.property=="valueNotInTheList")){
list.Where(x=> x.property=="valueNotInTheList").First().someOperation()
}
谢谢!
您可以尝试在条件不满足任何项目时返回default
(在您的情况下null
)值的FirstOrDefault
。然后保持null
(在这种情况下什么都不做),你可以把?.
操作符而不是.
:
list
.FirstOrDefault(x => x.property == "valueNotInTheList")
?.someOperation();