按列名对表列表进行分组(包括样本)

时间:2012-10-24 20:39:44

标签: javascript html asp.net-mvc linq

我有一张桌子需要分组成divs

rated | rater | team | score | subject
john    mike     TA     10      math
john    mike     TA     10      PE
john    jane     TA     9       math
john    jane     TA     9       PE
kim     lee      TB     5       math
kim     min      TB     2       math

我需要它看起来像

 TA
    john
     RATER    MATH  PE         
     mike      10   10
     jane      9     9
 TB
   kim
    RATER     MATH  PE
    lee        5
    min        2

在我看来,我只是从带有

的LINQ迭代这些值
@foreach (var item in Model) 

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

看起来你想要转置列和行。

从此博客中查看此方法: http://higherlogics.blogspot.com/2010/05/linq-transpose-extension-method.html

以下是代码示例:

public static IEnumerable<IEnumerable<T>> Transpose<T>(
     this IEnumerable<IEnumerable<T>> source)
{
return from row in source
       from col in row.Select(
           (x, i) => new KeyValuePair<int, T>(i, x))
       group col.Value by col.Key into c
       select c as IEnumerable<T>;
}