C# Linq复内连接

C# Linq复内连接,c#,linq,inner-join,C#,Linq,Inner Join,我想将我的数据与linq内部连接连接为: [数据合同] 公共类数据 { [DataMemberOrder=0,IsRequired=false,EmitDefaultValue=false] 公共列表行{get;set;} } [数据合同] 公共类DataResultObject { [数据成员] 公共字符串名称{get;set;} [数据成员] 公共字符串值{get;set;} [数据成员] 公共字符串类型{get;set;} } List follow=Listdataset_cache.G

我想将我的数据与linq内部连接连接为:

[数据合同] 公共类数据 { [DataMemberOrder=0,IsRequired=false,EmitDefaultValue=false] 公共列表行{get;set;} } [数据合同] 公共类DataResultObject { [数据成员] 公共字符串名称{get;set;} [数据成员] 公共字符串值{get;set;} [数据成员] 公共字符串类型{get;set;} } List follow=Listdataset_cache.Getfollow//364行 List icerik=Listdataset_cache.Geticerik//134854行 列表follow\u icerik=icerik.Joinfollow, i=>i.Row.Wherew=>w.NAME==CrawlSourceId.Selects=>s.VALUE, f=>f.Row.Wherew=>w.NAME==crawl\u source\u id.Selects=>s.VALUE, i、 f=> 新数据 { 行=i.Row.Concatnf.Row.ToList } .5.ToList; 但它返回空,当我们在on子句中有list时,如何使用内部联接

试试这个:

List<Data> follow_icerik = icerik.Concat(
                icerik.SelectMany(e => e.Row)
                                 .Where(w => w.NAME == "CrawlSourceId")
                                 .Join(follow.SelectMany(e => e.Row)
                                              .Where(w => w.NAME == "crawl_source_id"),
                i => i.VALUE,
                f => f.VALUE,
                (i, f) =>
                     new List<DataResultObject> { i, f }
                ).Select(e => new Data { Row = e })
).ToList();
编辑:

icerik.SelectManye=>e.Row-选择包含我们需要的数据的行

icerik.SelectManye=>e.Row.Wherew=>w.NAME==CrawlSourceId-筛选此数据

。。。加入…-联接筛选数据

在Join中,我们还必须在Join之前过滤数据:follow.SelectManye=>e.Row.Wherew=>w.NAME==crawl\u source\u id

i=>i.VALUE,
f=>f.VALUE,-我们在其上连接数据的字段。

您能用基本循环编写它吗?它会帮助你的。另外,您可以添加一个吗?如果您可以提供一个包含示例数据的示例,那就太棒了。我需要使用linq,sql没有问题。@CanerUnutkan将您的数据发布为PoCoy您可能可以将此字符串转换为字符串。Join\0,I.Row.Wherew=>w.NAME==CrawlSourceId.Selects=>s.VALUE.OrderByo=>o。但是你一定要按照mjwills说的去做才能得到一个好的答案。获取w上的错误。NAME:List'不包含'NAME'的定义,也没有扩展方法'NAME'接受'List'类型的第一个参数,我编辑了一个litle并进行了工作,但结果只加入了colums,其他colums丢失了。新数据{Row=新列表{i,f}}解释您想要的结果,因为您的问题描述不清楚。请重新编辑。希望需要您。现在错误是:无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.List”。存在显式转换。是否缺少强制转换?