from c in list where c.ParentID == ROOTID orderby c.Priority select c
比如这个 from c 和 select c不是一个意思么?
或者请给我挨个字 讲解下?
linq查询语法中的 from 和 in 不是冲突了么?都是一样的意思吧 .
答案:4 悬赏:0 手机版
解决时间 2021-04-12 07:32
- 提问者网友:萌卜娃娃
- 2021-04-11 20:35
最佳答案
- 五星知识达人网友:三千妖杀
- 2021-04-11 21:10
你说的 from c 和select c 其实是一个特列 你要查询的数据 正好是 list 表中的一个完整的对象 比如 C 有两个字段 A B 可以有
from c in list where c.ParentID == ROOTID orderby c.Priority select new
{
A = c.A
}
这样就类似于数据库sql 的部分查询.
from c in list where c.ParentID == ROOTID orderby c.Priority select new
{
A = c.A
}
这样就类似于数据库sql 的部分查询.
全部回答
- 1楼网友:英雄的欲望
- 2021-04-12 01:00
这个是在设计linq故意这么设计的,为了和sql做区分,
这个不对,他是为了做智能感应
先from之后 在表明后边的. 可以直接拿到对象的任一属性。
放在后边就没有智能感应了。微软的设计...
- 2楼网友:胯下狙击手
- 2021-04-11 23:49
这个是在设计linq故意这么设计的,为了和sql做区分,你把他颠倒下顺序是不是
select * from c where ParentID = ROOTID ordery Priority
- 3楼网友:几近狂妄
- 2021-04-11 22:14
查询式必须以from子句开始,以select子句或group子句结束。
from的书写格式是:
from 局部变量in 数据源,对于
from c in list
c是局部变量,list是数据源。数据源在from子句中必须有可枚举性IEnumerable,或者有可导出性如IQueryable。局部变量代表源序列中成功变换的元素。局部变量和数据源都是强类型,可使用dot操作符处理类型中的任何合适的成员。
这段代码的解释如下:
from c in list where c.ParentID == ROOTID orderby c.Priority select c
从数据源list中的元素c查询c,满足条件c.ParentID==ROOTID,按c.Prinority列的升序排序。
这两个c是同一个意思,但c的意思在查询语句中看的不太明白,应当配合执行语句foreach一起看,例如打印两列
foreach(var q in listQuery)
{
Console.WriteLine("{0},{1}",q.ParentID,q.Prinority);
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯