2017-06-14 83 views
2
var list = Table 
    .GroupBy(t => t.GroupId, (key, g) => new {key, g}) 
    .Select(t => new Transaction 
    { 
     Date = t.g.First().DateCreate, 
     Reference = $"{t.g.First().AccounttName} {t.g.Select(z => z.DocumentNo)}", 
     TotalAmount = t.g.Sum(x => x.y.Amount.Value), 
    }) 

當使用LINQ分組我知道如何獲得一個值與一(),和與總和(),但我應該怎麼做才能交流聯繫的字符串值?如何Concat的字符串在LINQ組

在我的示例中,如何合併我的所有DocumentNo?

回答

3

使用string.Join

Reference = $"{t.g.First().AccounttName} {string.Join(",",t.g.Select(z => z.DocumentNo))}" 
+0

啊......加入......謝謝。你知道爲什麼string.Concat不工作嗎? –

+0

['string.Concat'](https://msdn.microsoft.com/en-us/library/a6d350wd(v = vs.110).aspx)連接**兩個**字符串。在這裏,您需要將字符串*列表*連接在一起 –

+1

@OfirWinegarten並非如此 - 還有其他'Concat' [重載](https://msdn.microsoft.com/en-us/library/system.string.concat( v = vs.110).aspx),它接受多個字符串(例如列表中的第一個字符串)。 'Concat'應該在一般情況下工作(LINQ to Objects)。但是,錯誤消息指示使用另一個(未指定)查詢提供程序,因此該問題缺乏上下文。這實際上取決於具體查詢提供程序支持哪些CLR方法。 –