products = products.OrderBy(x => x.Price).ToList();
var subProducts = products.Where(x => x.Price > 0 && x.Price < 100).ToList();
// then print each item in the list here.
// then do the next segment
subProducts = products.Where(x => x.Price >= 100 && x.Price < 200).ToList();
var productGroups =
from p in products
group p by GetPriceRange(p.Price) into g
select new {
PriceRange = g.Key,
Products = g.ToList()
};
foreach (var g in productGroups)
{
Console.WriteLine($"{g.PriceRange.Low} - {g.PriceRange.High}: {string.Join(", ", g.Products)}");
}
3条答案
按热度按时间ghg1uchk1#
如果您有一个名为
products
的列表,其中包含一个名为Price
的属性,则可以将基本Linq
表达式与OrderBy
和Where
一起使用编辑:现在我对您的问题有了更好的理解,您可以为每个100分的细分市场创建一个新的列表。
就像这样:
你可以把这个基本格式放在一个循环中,然后以100为单位进行迭代,得到每个段。
holgip5t2#
这里有两个问题需要解决。首先,你需要弄清楚,对于任何给定的价格,如何将其归类到一个价格区间。除非你的价格都是整数,否则你在帖子中提供的信息不够具体,但我会在这里做一个有根据的猜测。
然后,您的分组代码可能如下所示:
示例输出:
0.01- 100.00:产品{价格= 0.01 }、产品{价格= 99.99 }、产品{价格= 100 }
100点01分至200点00分:产品{价格= 100.01 }、产品{价格= 199.99 }、产品{价格= 200 }
200.01至300.00:产品{价格= 200.01 }
wnavrhmk3#
请尝试以下操作:
它将返回列表的列表。