如何在C#中透视网格视图

时间:2016-11-17 06:38:49

标签: c# asp.net linq gridview

您好我有一个列表,它被设置为网格视图的数据源。我的网格视图看起来像这样。

      Green| Gold | Grade  
       ----|----  | -------  
       2   | 1    | 100  
       3   | 1    | 101  
       -   | 3    | 102  
       3   | -    | 104  
       -   | -    | 105  
       8   | 5    | Total  

但我想要这样

  Grade   |100  |101 |102 |103 |104 |105 |Total  
--------- |---- |----|----|----|----|----|-----  
  Green   |2    |3   |-   |3   |8   |-   |8  
  Gold    |1    |1   |3   |-   |3   |-   |5  

这是我的列表类

public class Value
{
    public string Gold { get; set; }
    public string Grade { get; set; }
    public string Green { get; set; }
}

public class GetCACPopGuideResult
{
    public object Type { get; set; }
    public List<Value> Value { get; set; }
}

这就是我在代码

中所做的
GetCACPopGuideResult result = getvalue();// Get the values to display
GridView1.DataSource= result.Value;

Public GetCACPopGuideResult getvalue()
{
        string URL= myURL;
        var cli = new RestClient(URL);
        IRestRequest auctionRequest = new RestRequest(Method.GET);
        IRestResponse responseCustomer = cli.Execute(auctionRequest);
        return responseCustomer.Content;
}

我有可能在C#中做到这一点吗?请帮帮我。

提前致谢

1 个答案:

答案 0 :(得分:0)

您无法在LINQ中创建动态对象。

您应该做的是将您在字典中收到的数据转换为此示例:

var dictionary = value
    .GroupBy(v => v.Grade)
    .ToDictionary(g => g.Key, 
        g => new 
            {
                g.Select(x => x.Gold).FirstOrDefault(),
                g.Select(x => x.Green).FirstOrDefault()
            });