本文介绍了C#在Lambda表达式中声明变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想做一个简单的lambda表达式,像这样:
I want to do a simple lambda expression like this:
IList<MyEntity1> list = GetSomeList();
MyEntity1 result = list.SingleOrDefault<MyEntityList>(
e => GetMyEntity2(e) != null && GetMyEntity2(e).Id != null && GetMyEntity2(e).Id > 0
);
这很好,但是从MyEntity1获取MyEntity2并不是那么简单,因此我想在lambda表达式中声明一个变量以保存MyEntity2并使用它,而不是一次又一次地调用GetMyEntity2方法.有可能吗?
That works perfectly, but getting MyEntity2 from MyEntity1 is not so simple so I would like to declare a variable into the lambda expression to save MyEntity2 and use it, instead of calling again and again to GetMyEntity2 method. Is that possible?
注意:该代码只是一个反映我真实情况的示例.
Note: The code is just an example that reflects my real case.
谢谢!
推荐答案
首先,您是否打算在linq to sql/entity framework/other中使用它?
Well, first off, are you trying to use this in linq to sql / entity framework / other?
如果没有,那就这样做
list.SingleOrDefault(e => {
var entity = GetMyEntity2(e);
return entity != null && entity.Id != null && entity.Id > 0;
});
这篇关于C#在Lambda表达式中声明变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!