什么是C#Linq与VB.Net Linq组Join和Into关键字的等价物?
我正试图用C#重写一个旧的vb.net应用程序。我遇到了需要转换的linq代码:什么是C#Linq与VB.Net Linq组Join和Into关键字的等价物?,c#,vb.net,linq,C#,Vb.net,Linq,我正试图用C#重写一个旧的vb.net应用程序。我遇到了需要转换的linq代码: (From wn In dtx.WebQueryGroupNames Group Join _ wqg In dtx.WebQueryGroups On wn.QueryGroupNameKey Equals wqg.QueryGroupNameKey _ Into Group _ From p
(From wn In dtx.WebQueryGroupNames Group Join _
wqg In dtx.WebQueryGroups On wn.QueryGroupNameKey Equals wqg.QueryGroupNameKey _
Into Group _
From p In Group.DefaultIfEmpty() _
Select wn _
Where Not (From x In dtx.WebQueryGroups Where x.QueryKey = queryKey Select x.QueryGroupNameKey).Contains(wn.QueryGroupNameKey)).Distinct.ToList
到目前为止,我得到的是:
(from wn in dtx.WebQueryGroupNames Group join
wqg in dtx.WebQueryGroups on wn.QueryGroupNameKey equals wqg.QueryGroupNameKey
Into Group
from p in Group.DefaultIfEmpty()
select wn
where !(from x in dtx.WebQueryGroups where x.QueryKey = queryKey select x.QueryGroupNameKey).Contains(wn.QueryGroupNameKey)).Distinct();
我似乎找不到有关该组的任何信息,也找不到转换为C#的关键字。我想我遗漏了一个关键点,使这个问题有意义 你要找的术语是
我相信
groupjoin
转化为一个带有into
子句的计划Join
。试试这个
(from wn in dtx.WebQueryGroupNames join
wqg in dtx.WebQueryGroups on wn.QueryGroupNameKey equals wqg.QueryGroupNameKey
into g
from p in g.DefaultIfEmpty()
select wn
where !(from x in dtx.WebQueryGroups where x.QueryKey = queryKey select x.QueryGroupNameKey).Contains(wn.QueryGroupNameKey)).Distinct();
See是另一个很好的资源(如果你知道你要做的事情的逻辑名称,不一定只是VB.NET关键字)。@Rodrigo我一直在使用这个网站,它是一个很好的资源;然而,当我不确定最初的开发人员想要完成什么时,它并不能帮助我将VB.Net代码转换成C。
(from wn in dtx.WebQueryGroupNames join
wqg in dtx.WebQueryGroups on wn.QueryGroupNameKey equals wqg.QueryGroupNameKey
into g
from p in g.DefaultIfEmpty()
select wn
where !(from x in dtx.WebQueryGroups where x.QueryKey = queryKey select x.QueryGroupNameKey).Contains(wn.QueryGroupNameKey)).Distinct();