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 次 |
| 最近记录: |