我有一個表(如數字列表),通過一系列linq查詢重新創建。我試圖根據第一行中的值以降序對列進行排序。另一個LINQ OrderBy查詢
我的數據庫看起來是這樣的:
Data
{
ColumnLabel,
RowLabel,
Value
}
{"Cat", "All", 9}
{"Dog","All", 17}
{"Fish", "All", 4}
{"Cat", "Girls", 3}
{"Dog","Girls", 2}
{"Fish", "Girls", 2}
{"Cat", "Boys", 6}
{"Dog","Boys", 15}
{"Fish", "Boys", 2}
當我天真地加入這個表一起,它看起來是這樣的:
Cat | Dog | Fish
All 9 17 4
Girls 3 15 2
Boys 6 2 2
我想要做的排序是按降序根據訂單ColumnLabels
其中我希望桌子看起來像這樣:
Dog | Cat | Fish
All 17 9 4
Girls 15 3 2
Boys 2 6 2
注意狗和貓排翻轉。
我需要把這個表格使用HTML,所以我遍歷每行。
我通過排序ColumnLabels
開始:
變種頂部= data.Where(X => x.RowLabel == 「全部」) .OrderBy(X => x.Data) 。選擇(X => x.ColumnLabel).SingleOrDefault();
現在top
包含我希望列出現的順序; {Dog, Cat, Fish}
。我並不在乎行如何垂直排序。
我再想做的是基於組的每一行其所在的RowLabel
值:
var row = data.GroupBy(x => x.RowLabel)
.OrderBy(y => ??????????????);
//I want to OrderBy the values in top
//How do I do this?
我再通過各行進行迭代,並創建我的HTML表格。這部分很簡單,但我不知道如何根據最高順序訂購後續行。我如何在LINQ中做到這一點?
這看起來「正確」乍一看。讓我試試看,我會稍微迴應一下。 :) – Harry 2010-09-29 05:23:03
如果我有多個groupBy,如何使用上面的代碼。例如:.GroupBy(x => new {x.RowLabel,x.MoreRowLabel}),(x,y)...)當它到達委託時它會引發錯誤。 – Harry 2010-09-29 05:47:18
你是什麼意思由多個groupBy?什麼錯誤? – 2010-09-29 06:15:09