0

私は以下のクラスを持っています

public class SearchResponse
{
       public string SearchTerm { get; set; }
       public List<DataClass> lstDataClass
       public string Category { get; set; }

}

public DataClass
{
        public String Date { get; set; }
        public string NoOfRecord { get; set; }
}

クラスとのグループ化List<SearchResponse>によって NoOfRecord の合計を取得します。SearchtermSearchResponseDateDataClass

仮定する

SearchResponse1
{
     SearchTerm="A";
    Category="cata";
     ListOfDataClass
    {
         dataclass
          {
             5 may 2013,
             50
          }
         dataclass
         {
              6 may 2013,
              68
         }
     }
}


SearchResponse2
{
     SearchTerm="A";
    Category="catb";
     ListOfDataClass
    {
         dataclass
          {
             5 may 2013,
             52
          }
         dataclass
         {
              6 may 2013,
              63
         }
     }
}


SearchResponse3
{
     SearchTerm="B";
    Category="catc";
     ListOfDataClass
    {
         dataclass
          {
             5 may 2013,
             48
          }
         dataclass
         {
              6 may 2013,
              21
         }
     }
}

私が欲しい

SearchTerm="A", Date=5 May 2013, TotalRecords=102
SearchTerm="A", Date=6 May 2013, TotalRecords=131
SearchTerm="B", Date=6 May 2013, TotalRecords=48
.
.
.
4

2 に答える 2

1

linq ソリューションは次のとおりです。

from x in
(
    from sr in SearchResponse
    from dc in sr.DataClass
    select new { sr.SearchTerm , dc }
)
group x by new { x.SearchTerm, x.dc.Date } into g
select new {
               g.Key.SearchTerm, 
               g.Key.Date, 
               TotalRecords = g.Sum(g1 => g1.p.NoOfRecord) 
           }

最初に、 とをグループ化できるフラット リスト ( new { sr.SearchTerm , dc }) を作成します。その後、各グループでが計算されます。SearchtermDateSum

于 2013-06-05T21:35:20.897 に答える