投影运算
此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
Learn有关 Microsoft 开发人员工具和技术的深度文章 经 Microsoft 审核的技术问题和解答 Microsoft 开发人员工具和技术的代码示例库 来自 Microsoft 专家的数千小时原创节目 适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
投影运算 (Visual Basic)
项目2023/04/07本文内容
方法查询表达式语法示例Select 与 SelectMany请参阅投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。 通过使用投影,您可以构造从每个对象生成的新类型。 可以投影属性,并对该属性执行数学函数。 还可以在不更改原始对象的情况下投影该对象。
下面一节列出了执行投影的标准查询运算符方法。
方法
查询表达式语法示例
选择
下面的示例使用 Select 子句来投影字符串列表中每个字符串的第一个字母。
Dim words = New List(Of String) From {"an", "apple", "a", "day"} Dim query = From word In words Select word.Substring(0, 1) Dim sb As New System.Text.StringBuilder() For Each letter As String In query sb.AppendLine(letter) Next ' Display the output. MsgBox(sb.ToString()) ' This code produces the following output: ' a ' a ' a ' d
SelectMany
下面的示例使用多个 From 子句来投影字符串列表中每个字符串中的每个单词。
Dim phrases = New List(Of String) From {"an apple a day", "the quick brown fox"} Dim query = From phrase In phrases From word In phrase.Split(" "c) Select word Dim sb As New System.Text.StringBuilder() For Each str As String In query sb.AppendLine(str) Next ' Display the output. MsgBox(sb.ToString()) ' This code produces the following output: ' an ' apple ' a ' day ' the ' quick ' brown ' fox
Select 与 SelectMany
Select() 和 SelectMany() 的工作都是依据源值生成一个或多个结果值。 Select() 为每个源值生成一个结果值。 因此,总体结果是一个与源集合具有相同元素数目的集合。 与之相反,SelectMany() 生成单个总体结果,其中包含来自每个源值的串联子集合。 作为参数传递到 SelectMany() 的转换函数必须为每个源值返回一个可枚举值序列。 然后,SelectMany() 串联这些可枚举序列,以创建一个大的序列。
下面两个插图演示了这两个方法的操作之间的概念性区别。 在每种情况下,假定选择器(转换)函数从每个源值中选择一个由花卉数据组成的数组。
下图描述 Select() 如何返回一个与源集合具有相同元素数目的集合。

下图描述 SelectMany() 如何将中间数组序列串联为一个最终结果值,其中包含每个中间数组中的每个值。

代码示例
下面的示例比较 Select() 和 SelectMany() 的行为。 代码通过从源集合的每个花卉名称列表中提取项来创建一个“花束”。 此示例中,transform 函数 Select<TSource,TResult>(IEnumerable<TSource>, Func<TSource,TResult>) 使用的“单值”本身即是值的集合。 这需要额外的 For Each 循环,以便枚举每个子序列中的每个字符串。
Class Bouquet Public Flowers As List(Of String) End Class Sub SelectVsSelectMany() Dim bouquets = New List(Of Bouquet) From { New Bouquet With {.Flowers = New List(Of String)(New String() {"sunflower", "daisy", "daffodil", "larkspur"})}, New Bouquet With {.Flowers = New List(Of String)(New String() {"tulip", "rose", "orchid"})}, New Bouquet With {.Flowers = New List(Of String)(New String() {"gladiolis", "lily", "snapdragon", "aster", "protea"})}, New Bouquet With {.Flowers = New List(Of String)(New String() {"larkspur", "lilac", "iris", "dahlia"})}} Dim output As New System.Text.StringBuilder ' Select() Dim query1 = bouquets.Select(Function(b) b.Flowers) output.AppendLine("Using Select():") For Each flowerList In query1 For Each str As String In flowerList output.AppendLine(str) Next Next ' SelectMany() Dim query2 = bouquets.SelectMany(Function(b) b.Flowers) output.AppendLine(vbCrLf & "Using SelectMany():") For Each str As String In query2 output.AppendLine(str) Next ' Display the output MsgBox(output.ToString()) ' This code produces the following output: ' ' Using Select(): ' sunflower ' daisy ' daffodil ' larkspur ' tulip ' rose ' orchid ' gladiolis ' lily ' snapdragon ' aster ' protea ' larkspur ' lilac ' iris ' dahlia ' Using SelectMany() ' sunflower ' daisy ' daffodil ' larkspur ' tulip ' rose ' orchid ' gladiolis ' lily ' snapdragon ' aster ' protea ' larkspur ' lilac ' iris ' dahlia End Sub
请参阅
System.Linq 标准查询运算符概述 (Visual Basic) Select 子句 如何:使用联接合并数据 如何:从多个源填充对象集合 (LINQ) (Visual Basic) 如何:以特定类型返回 LINQ 查询结果 如何:使用组将一个文件拆分成多个文件 (LINQ) (Visual Basic)可以在 GitHub 上找到此内容的源,还可以在其中创建和查看问题和拉取请求。 有关详细信息,请参阅参与者指南。相关知识
投影运算
花老湿OpenCV学习:形态学操作(开、闭运算,形态学梯度,顶帽,黑帽)
尝试基于一列来执行数学计算
约翰5岁左右时,看到盛开的花朵会说:“花儿开了,因为它想看看我。”根据皮亚杰的认知发展阶段理论,此时约翰最有可能处于()阶段。
初中信息技术会考Excel复习提纲
基于深度卷积神经网络的移动端花卉识别系统
园林专业需要学会的计算机软件,园林专业主要课程
情人节订花文案(精选175句)
昆明斗南是全国最大的鲜切花交易市场。下表是花卉市场某商家当天部分鲜花出售情况:种类玫瑰花百合花菊花数量198枝377枝285枝一辆转运车一次最多能运900枝鲜花
为响应“创建全国文明城市”的号召,某村不断美化环境,拟在一块长为,宽为的长方形空地上修建如图所示的十字形花圃(非阴影部分),在花圃内种花,其余部分(阴影部分)种
原文链接: 投影运算 https://m.huajiangbk.com/newsview104662.html
| 上一篇: 属于化学性质的是 | 下一篇: 网球的四大赛事分别是什么 |




