1
31
Select many允许您从查询源中选择一个属于IEnumerable<T>集合的属性,但它不会返回集合(IEnumerable<IEnumerable<T>)而是将集合展平为单个集合。 下面是一个示例,您可以运行它来演示Select和SelectMany之间的区别:
通过使用SelectMany,可以更轻松地查询子集合中的值。 |
2
13
有几个重载
例子
:假设您有以下结构:
你可以很容易地返回一个单位的球员集合。不过,你可能会失去对球员所属球队的任何参考。 幸运的是,有一个超载的目的:
上一个例子取自丹的IK博客: http://blogs.interknowlogy.com/2008/10/10/use-linqs-selectmany-method-to-flatten-collections/ 我 强烈地 建议你看看。 |
3
6
SelectMany基本上是扁平化和处理分层数据,它有两种主要形式 (为了示例的目的,请参阅此初始代码)
选项1)从集合中创建集合(基本上是展开分层数据)
结果是:
选项2)从集合创建集合,然后通过对原始父集合的引用处理新集合的每个项
结果是:
上面的每个用法都有一个变体,在这个变体中,转换函数可以使用正在处理的项的索引。 |
4
3
我用这个分机 全部的 进入等级制度的时间。 当扩展变得有点混乱时,另一个很酷的方法是使用正式的LINQ方法,比如:
这相当于:
当添加where子句和连接等时,这可能会有点冗长。 希望这有帮助! |
5
0
我在LINQ中使用SelectMany获得了一些乐趣。下面的链接描述了在返回序列序列的LINQ select子句中返回一个IEnumerable,并使用SelectMany将其展平为一个简单序列。 "Linq to XML using Let, Yield return and Selectmany" . 它不仅仅是一个SelectMany用例,而是从LINQ中的单个输入生成多个输出的方法的一部分。 |
6
0
下面是另一个(VB.NET)使用示例:
|
Imad · Linq扩展方法没有使用Object类的Equals 1 年前 |
user8512043 · 根据每个元素中的数字对列表进行排序 2 年前 |
Nick Fleetwood · 调度语法的LINQ查询 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |