2015-04-23 152 views
1

我有以下LINQ表達式,我需要在結果列表中添加兩個額外字符串字段(newFieldWhat和newFieldBy)到Record-object。字符串值可以是第一個也可以是最後一個,沒有區別。我怎麼能做到這一點?Linq group by select

List<Record> groupedTable = (from t in recordTable 
        group t by new {t.groupBy1} 
        into grp 
         select new 
         Record{ 
          groupBy1 = grp.Key.groupBy1, 
          attribute1 = grp.Sum(t => t.attribute1), 
          newFieldWhat = ? 
          newFieldBy = ? 
         }).OrderBy(a => a.groupBy1).ToList(); 
+0

'grp.First()','grp.Last()'或你的意思是什麼東西? –

+0

您是否在問如何將屬性添加到R​​ecord類中?...... –

+0

您無法在運行中修改您的類「Record」。你想達到什麼目的? –

回答

3

這一評論使得它更清晰:

newFieldWhat = grp.First(t => t.newFieldWhat) 

給我: 「不能將 '字符串' 到 '布爾' newFieldWhat是 字符串」

我想你想要:

newFieldWhat = grp.First().newFieldWhat 

或者,如果你希望所有的組:

newFieldWhat = String.Join(",", grp.Select(t => t.newFieldWhat)) 
+0

newFieldWhat = grp.First() .newField這是我需要的。謝謝 – user2542809

+0

@ user2542809:如果你期望只有dulicates第一個是有效和正確的。但也許你想用第二個。它的優點是它顯示了分隔的所有組逗號。你可以使用'grp.Select(t => t.newFieldWhat).Distinct()'如果你只想看看是否有不同。如果沒有結果與'First()。newFieldWhat'相同,因爲沒有附加逗號。 –