C#在Lambda表达式中声明变量 [英] C# Declare variable in lambda expression

查看:751
本文介绍了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表达式中声明变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆