有关 Microsoft 开发人员工具和技术的深度文章
投影运算
此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
Learn经 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://www.huajiangbk.com/newsview104662.html
上一篇: 属于化学性质的是 |
下一篇: 网球的四大赛事分别是什么 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039