我們有一個稱爲rowData的Page類的集合。我需要通過名爲PartitionKey
的列的子字符串對這些類進行分組。如何將一個類分區鍵的一部分與LINQ分組?
var a = from Page in rowData
group Page by new {
Page.PartitionKey.Substring(0,2),
Page.PartitionKey.Substring(2,6),
Page.PartitionKey.Substring(8)
} into group
select new {
group.key.SubjectId
, group.key.bookId
, group.Key.chapterId
, total = rowData.sum(s => s.Page)
};
我們試過這個建議,但它給出了一個錯誤:
Error 1 Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.
沒有人有任何想法是什麼我們做錯了什麼?
這需要創建報表的數據。數據應顯示每個科目的書籍,章節和頁數。我們的記錄如下所示:
Primary key (columns 0-1 show the subject)
Primary key (columns 2-6 show the book ID)
Primary key (columns 8-12 show the chapter ID)
Row Key < there is a unique key for each row
因此,主鍵和行的組合是唯一的並且表示單個頁面。
這裏的主鍵的例子:
010000100001
010000100001
010000100001
010000100002
010000100002
010000100002
010000200003
010000200003
020000300004
020000300005
在這個例子中,我們需要一份報告,看起來是這樣的:
Subject Books Chapters Pages
01 2 3 8
02 1 2 2
謝謝喬恩。是的,它現在在總線上失敗了。我們需要的是做一份報告,顯示每個主題的書籍總數,章節總數和頁面總數。我更多地更新了這個問題來解釋需要什麼。 –
@RichardM:現在還不清楚你想要總結的是什麼。你實際上只是想要計算該組中的元素數量嗎?如果是這樣,只需使用'g.Count()' –
抱歉。我不是很清楚,所以我更新了這個問題。我也會添加一個例子。 –