2017-06-14 10 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のでグループ化するとき、私はまず()、和(との合計と単一の値を取得するために)が、私は、文字列値をconcactために何をすべきか知っていますか?どうきゅうグループ内の文字列をCONCATする

私の例では、私の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)は、** 2つの**文字列を連結します。ここでは、文字列の*リスト*を結合する必要があります –

+1

@OfirWinegarten他の 'Concat' [overloads](https://msdn.microsoft.com/en-us/library/system.string.concat v = .110).aspx)複数の文字列を受け入れます(たとえばリストの最初の文字列など)。 'Concat'は一般的なケース(LINQ to Objects)で動作するはずです。しかし、エラーメッセージは別の(指定されていない)クエリープロバイダの使用を示しているため、質問にはコンテキストがありません。具体的なクエリプロバイダでサポートされているCLRメソッドによって異なります。 –

関連する問題