Linq 如何连接两个返回所有行并按条件分组的数据源?
我在使用LINQ连接两个数据源时遇到问题。由以下查询创建的两个数据源: 变量A=(来自…)。。。。 将…分组为grp 选择新的 { 数量=grp.Count(), 代码=grp.Key.Code, Name=grp.Key.Name }); 变量B=(来自…)。。。。 将…分组为grp 选择新的 { 数量=grp.Count(), 代码=grp.Key.ContCode, Name=grp.Key.ContName }); “A”的值将按如下方式返回:Linq 如何连接两个返回所有行并按条件分组的数据源?,linq,join,Linq,Join,我在使用LINQ连接两个数据源时遇到问题。由以下查询创建的两个数据源: 变量A=(来自…)。。。。 将…分组为grp 选择新的 { 数量=grp.Count(), 代码=grp.Key.Code, Name=grp.Key.Name }); 变量B=(来自…)。。。。 将…分组为grp 选择新的 { 数量=grp.Count(), 代码=grp.Key.ContCode, Name=grp.Key.ContName }); “A”的值将按如下方式返回: Qty-Code-Name
Qty-Code-Name
1-10A-Cont10
1-20B-Cont20
1-30C-Cont30
Qty-Code-Name
1-10A-Cont10
1-20B-Cont20
1-30C-Cont30
1-40D-Cont40
1-50E-Cont50
“B”的值将按如下方式返回:
Qty-Code-Name
1-10A-Cont10
1-20B-Cont20
1-30C-Cont30
Qty-Code-Name
1-10A-Cont10
1-20B-Cont20
1-30C-Cont30
1-40D-Cont40
1-50E-Cont50
我想把A和B连接起来(或者做一些事情),结果是这样的(如果它们的“代码”和“名称”相同,那么它们的“数量”列相加):
我怎么做?请帮帮我。
多谢各位 Concat两个数据源,然后按
code
和name
分组。
比如:
var q = from v in A.Concat(B)
group v by new {v.Code,v.Name } into g
select new
{
Qty = g.Sum(a => a.Qty),
CodeName = g.Key.Code,
Name = g.Key.Name
};
谢谢,它很管用!事实上,我以前尝试过“Concat”方法,但出现了一个错误。现在我再试一次,发现了我的问题。这是因为两个数据源中的“数量”字段不是相同的类型,所以我无法对它们进行“浓缩”。[在我上面的问题中,'Qty=grp.Count()'具有相同类型的'Int']再次感谢!