0

私はこのように構築されたデータのリストを持っています:

public class MyData
    {
        public string Name { get; set; }
        public datetime Date { get; set; }
        public double? Value { get; set; }
        public string Other { get; set; }
    }

List<MyData> lstData = new List<MyData>();

GridView にバインドされているもの

結果は次のようになります。

Name  Date      Value Other
---------------------------
User1 1/1/2001   27   test
User1 1/1/2002   44   test
User1 1/1/2003   65   test
User2 1/1/2001   111  test
User2 1/1/2002   384  test
User2 1/1/2003   98   test
User3 1/1/2001   322  test
User3 1/1/2002   445  test
User3 1/1/2003   77   test
.
.
.

そして、データを次のようにピボットしたいと思います:

Date      User1 User2 User3 ...
--------------------------
1/1/2001  27    111   322
1/1/2002  44    384   445
1/1/2003  65    98    77

これを再度 GridView にバインドします。

C#/Silverlight でこれを達成するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

さて、これが私が望ましい結果を得るために行った方法です:

List<MyData> lstData = new List<MyData>();

List<dynamic> lst = new List<dynamic>();

            foreach (var item in lstData.Select(a => a.Date).Distinct())
            {
                dynamic obj = new ExpandoObject();
                obj.Date = item;
                lst.Add(obj);
            }

            foreach (string item in lstData.Select(a => a.Name).Distinct())
            {
                foreach (var objitem in lst)
                {
                  string header = item;
                    ((IDictionary<String, Object>)objitem).Add(header, lstData.Where(d => d.Date == objitem.Date && d.Name == item).FirstOrDefault().Value);
                }
            }

gridView.Itemssource = lst;
于 2013-04-30T12:45:09.320 に答える