c# - linq group by condition followed by a date group -


i trying group data without luck.

i have list of data

 public class transactionsviewmodel {     public string businessname { get; set; }     public string description { get; set; }     public int transactiontypeid { get; set; }     public string transactiontype { get; set; }      [display(name = "transaction amount")]     public decimal transactionamount { get; set; }      [display(name = "transaction date")]     public datetime transactiondatetime { get; set; }  } 

i wanting grouping on created couple of classes like

  public class businesstransaction {     public string name { get; set; }     public list<transaction> transactions { get; set; } }  public class transaction {     public decimal transactionamount { get; set; }     public string description { get; set; }     public datetime transactiondate { get; set; }     public string transactiontype { get; set; }  } 

so can group businessname simple

  var data = c in transactions                    group c c.businessname                    business                    select new businesstransaction()                               {                                   name = business.key,                                  }; 

how can group transactions transactiondatetime.date? wanting send client data structure like

businessname   28-06-12      transaction      transaction    27-06-12      transaction  businessname    28-06-12       transaction 

i think want like:

 var data = c in transactions             group c c.businessname             business             select new businesstransaction             {                 name = business.key,                 transactions = business.orderby(t => t.transactiondatetime)                                        .tolist()             }; 

edit: that's structure can support current businesstransaction class. if wanted support grouping directly, you'd have add level of nesting in there.

however, using existing structure client can group things themselves:

foreach (var business in query) {     console.writeline(business.name);     foreach (var group in business.transactions                                   .groupby(t => t.transactiondatetime.date))     {         console.writeline("  {0}", group.key);         foreach (var transaction in group)         {             console.writeline("    {0}", transaction.description);         }     } } 

Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -