Jar*_*Bot 1 .net c# linq c#-4.0
public class Feature
{
public string Id { get; set; }
public string Description { get; set; }
public decimal Class { get; set; }
public decimal Price { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个Feature[]
阵列.现在,当我有一个填充数组列表时,我想:
Price = 0
. [Id]
和[Class]
我一样,我想总结这些项目的价格并显示为单个项目.如何用LINQ实现这一目标?
试试这个:
Feature[] features = ...
var results =
from f in features
where f.Price != 0
group f by new { f.Id, f.Class } into g
select new Feature
{
Id = g.Key.Id,
Class = g.Key.Class,
Description = g.First().Description,
Price = g.Sum(f => f.Price)
};
Run Code Online (Sandbox Code Playgroud)
或者用流利的语法:
var results = features
.Where(f => f.Price != 0)
.GroupBy(f => new { f.Id, f.Class })
.Select(g => new Feature
{
Id = g.Key.Id,
Class = g.Key.Class,
Description = g.First().Description,
Price = g.Sum(f => f.Price)
});
Run Code Online (Sandbox Code Playgroud)
请注意,这会生成一组全新的Feature
对象,与原始对象完全无关.另请注意,f.Price != 0
此处可能不需要过滤; 如果价格实际为0,则无论如何它都不会显示在总和中.唯一的区别是,如果您没有过滤掉f.Price != 0
,那么Feature
该组中所有价格为0的组将在结果集中.
归档时间: |
|
查看次数: |
319 次 |
最近记录: |