我正在尝试进行加入,然后进行分组,我返回的分组信息很棒!工作就像一个魅力,但我仍然需要访问分组以外的值,如果这是有道理的..
我在stackoverflow上找到了一个例子,这可能更好地解释了
var query = from c in context.Contacts
join o in context.Orders on c.Id equals o.CustomerId
select new
{
Contact = c,
Order = o
} into ContactAndOrder
group ContactAndOrder by ContactAndOrder.Order.Id into g
select new
{
g.Key,
ContactWhatever = g.Sum(co => co.Contact.Whatever),
OrderWhatever = g.Sum(co => co.Order.Whatever)
};
现在这似乎工作得很好,问题是在我的情况下co.Order.Whatever是一个字符串所以我得到一个错误说不能将字符串转换为int,这我理解为聚合函数Sum期望一个int。 ...
我的问题是,是否有一个聚合函数或类似的东西我可以得到co.Order.Whatever的值(在我的情况下是一个字符串)
问题在于,一旦完成了小组,我就会失去“c”和“o”
我希望有人可以提供帮助。
提前致谢
答案 0 :(得分:0)
如果组中总是相同,那么第一个就足够了......
ContactWhatever = g.First().Contact.Whatever
否则使用@Andrei答案 或
ContactWhatever = g.Select(o => o.Contact.Whatever).Aggregate((a,b) => a + "," + b)