LINQ和GROUPBY [英] LINQ and GroupBy

查看:133
本文介绍了LINQ和GROUPBY的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我以前没有做过太多LINQ,所以我经常发现一些方面的混乱。最近有人创建了一个查询,看起来像使用GROUPBY运算符以下。下面是他们做了什么:

I haven't done much LINQ before, so I often find some aspects confusing. Recently someone created a query that looks like the following using the GroupBy operator. Here's what they did:

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(范围= >范围> =尺寸

Basically I am very quite confused as to how the key expression works, i.e. ranges.First(range => range >= size

任何人都可以提供一些线索?是否可以进一步分解,使这个更容易理解呢?我认为,首先会产生一个结果。

Can anyone shed some light? Can it be decomposed further to make this easier to understand? I thought that First would produce one result.

先谢谢了。

推荐答案

尺寸=> ; ranges.First(范围= GT;范围> =大小)此函数功能构建键,在其上的大小将被分组这需要电流的大小,并发现第一范围,这是大于或等于电流大小

size => ranges.First(range => range >= size) this Func builds key, on which sizes will be grouped. It takes current size and finds first range, which is greater or equal current size.

它是如何工作的:

有关尺寸 99 第一个范围而方式> = 99 100 所以,计算的关键值将是 100 尺寸去组键 100

For size 99 first range which >= 99 is 100. So, calculated key value will be 100. Size goes to group with key 100.

接下来大小 98 10 5 也将获得关键 100 ,进入到该组。

Next sizes 98, 10, 5 also will get key 100 and go to that group.

有关尺寸 5454 计算关键值将是百万(这是其中较大的第一个范围的 5454 。因此,新的关键是创建和大小去组键百万

For size 5454 calculated key value will be 1000000 (it's the first range which is greater that 5454. So, new key is created, and size goes to group with key 1000000.

这篇关于LINQ和GROUPBY的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆