gpt4 book ai didi

c# - LINQ 和 GroupBy

转载 作者:行者123 更新时间:2023-11-30 19:43:59 25 4
gpt4 key购买 nike

我之前没有做过多少 LINQ,所以我经常发现一些方面令人困惑。最近有人使用 GroupBy 运算符创建了如下所示的查询。这是他们所做的:

List<int> ranges = new List<int>() {100, 1000, 1000000};

List<int> sizes = new List<int>(new int[]{99,98,10,5,5454, 12432, 11, 12432, 992, 56, 222});

var xx = sizes.GroupBy (size => ranges.First(range => range >= size));

xx.Dump();

基本上我对键表达式的工作方式感到非常困惑,即 ranges.First(range => range >= size

任何人都可以阐明一下吗?是否可以进一步分解以使其更易于理解?我认为 First 会产生一个结果。

提前致谢。

最佳答案

size => ranges.First(range => range >= size) 此 Func 构建键,尺寸将根据其分组。它获取当前大小并找到大于或等于当前大小的第一个范围。


工作原理:

对于尺寸 99>= 99 的第一个范围是 100。因此,计算出的键值为 100。大小以键 100 分组。

下一个尺寸 98105 也将获得 key 100 并转到该组。

对于大小 5454,计算出的键值将为 1000000(这是大于 5454 的第一个范围。因此,将创建新键, 并且 size 进入具有键 1000000 的组。

等等

关于c# - LINQ 和 GroupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13452161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com