简体   繁体   中英

How to create a LINQ group by query with dynamic columns?

I want to group by a datatable by the columns which are present in a List. Moreover I want to sum a column using group by result.

How to create a dynamic linq query for this?

Just group by the identifier you need and then sum the column as below.

    var lstYourClass = lstYourClass .GroupBy(x => x.Id).Select(z => new YourClassType
    {
    
    Amount= z.Sum(a => a.Amount),
    
    
    }).ToList();

Hope it helps :)

In case you want to use a dynamic linq query for this, you can use System.Linq.Dynamic.Core .

The code could look like:

var result = context.Posts.GroupBy("BlogId").Select("new(Key, Sum(NumberOfReads) AS TotalReads)");

See also

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM