【发布时间】:2020-03-06 08:44:24
【问题描述】:
我想将我的数据与 linq inner join 连接为:
[DataContract]
public class Data
{
[DataMember(Order = 0, IsRequired = false, EmitDefaultValue = false)]
public List<DataResultObject> Row { get; set; }
}
[DataContract]
public class DataResultObject
{
[DataMember]
public string NAME { get; set; }
[DataMember]
public string VALUE { get; set; }
[DataMember]
public string TYPE { get; set; }
}
List<Data> follow = (List<Data>)dataset_cache.Get("follow");//364 rows
List<Data> icerik = (List<Data>)dataset_cache.Get("icerik");//134854 rows
List<Data> follow_icerik = icerik.Join(follow,
i => i.Row.Where(w => w.NAME == "CrawlSourceId").Select(s => s.VALUE),
f => f.Row.Where(w => w.NAME == "crawl_source_id").Select(s => s.VALUE),
(i, f) =>
new Data
{
Row = i.Row.Concat(nf.Row).ToList()
}
).Take(5).ToList();
但它返回空,当我们在“on”子句中有列表时如何使用内连接?
【问题讨论】:
-
你能用基本的循环来写吗?它会帮助你。另外,你能加一个minimal reproducible example吗?
-
如果您能提供minimal reproducible example 包括示例数据,那就太好了。
-
我需要使用linq,sql没有问题。
-
@CanerUnutkan 将您的数据作为 POCO 发布
-
你可以使用转换为字符串来处理这个
String.Join("\0", i.Row.Where(w => w.NAME == "CrawlSourceId").Select(s => s.VALUE).OrderBy(o => o))。但是你绝对应该按照 mjwills 所说的去做才能得到一个好的答案。
标签: c# linq inner-join