我有一个表(如数字列表),通过一系列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