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
Post a Comment