感受一下.net中用 lambda与 linq 做数据集过滤的不同
2024-08-27 01:32:15
lambda:
ids.Add(
_hahahacontext
.hahahamodel
.FirstOrDefault(
a => //lambda做过滤
a.name == "张宏伟"
&& a.age==
)
.id
.ToString()
);
linq:
ids.Add((
from r in _hahahacontext.hahahamodel // linq 做查询过滤
where (r.name == "张宏伟"&& r.age == )
select r.id
).FirstOrDefault()
.ToString()
);
涉及到多表联查的时候,那真的是linq看起来更清晰,而lambda的话可能会把你搞乱。
比如:
viewModel.fields = new SelectList(
_hahahacontext
.hahahamodel1
.Where(
a => _hahahacontext
.hahahamodel2
.Where( // lambda 过滤和联查都是放到一起的,容易搞乱
b =>
a.REF_ENUMID == "-5136816235353979"
&& b.REF_ENUMID == "-5136816235353979"
&& a.STATE == ""
&& a.PARENT_ID == b.ID //表关联
&& b.SHOWVALUE != "欧洲"
)
.Any()
)
.Select(a => a.SHOWVALUE)
.ToArray()
.Prepend("")
.Distinct()
.ToList()
.OrderBy(a => a.ToString()));
但是,linq 中可以用“ join ” 来联查,如同sql语句一样。
最新文章
- Linux 系统命令
- MongoDB 数据库管理(不定时更新)
- 计算第K个素数
- MongoDB应用篇(转)
- Heka–>;Elasticsearch 索引数据过程的优化
- HDOJ 1428 漫步校园
- node.js操作mongoDB数据库
- docker 导入下载模板
- Dojo实现Tabs页报错(一)
- PHP 数组模糊查询
- mysql 查询正在执行的进程-亲试ok
- Luogu P1117 [NOI2016]优秀的拆分
- 【ARC063E】Integers on a tree
- docker 定时清理none镜像
- Pycharm及python安装详细教程
- c#递归实现螺旋数组
- java之RestTemplate的访问应用
- 书籍索引 #C++
- CC2530zigbee技术-简介协议栈
- windows server 2012泛域名解析配置