有关 Microsoft 开发人员工具和技术的深度文章
此浏览器不再受支持。
请升级到 Microsoft Edge 以使用最新的功能、安全更新和技术支持。
Learn有关 Microsoft 开发人员工具和技术的深度文章 经 Microsoft 审核的技术问题和解答 Microsoft 开发人员工具和技术的代码示例库 来自 Microsoft 专家的数千小时原创节目 适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
适用于组织的 Microsoft Learn 访问特选资源,以提升团队技能水平,缩小技能差距。
投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。 通过使用投影,您可以构造从每个对象生成的新类型。 可以投影属性,并对该属性执行数学函数。 还可以在不更改原始对象的情况下投影该对象。
下面一节列出了执行投影的标准查询运算符方法。
下面的示例使用 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
下面的示例使用多个 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() 生成单个总体结果,其中包含来自每个源值的串联子集合。 作为参数传递到 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
相关知识
投影运算
花老湿OpenCV学习:形态学操作(开、闭运算,形态学梯度,顶帽,黑帽)
尝试基于一列来执行数学计算
约翰5岁左右时,看到盛开的花朵会说:“花儿开了,因为它想看看我。”根据皮亚杰的认知发展阶段理论,此时约翰最有可能处于()阶段。
初中信息技术会考Excel复习提纲
基于深度卷积神经网络的移动端花卉识别系统
园林专业需要学会的计算机软件,园林专业主要课程
情人节订花文案(精选175句)
昆明斗南是全国最大的鲜切花交易市场。下表是花卉市场某商家当天部分鲜花出售情况:种类玫瑰花百合花菊花数量198枝377枝285枝一辆转运车一次最多能运900枝鲜花
为响应“创建全国文明城市”的号召,某村不断美化环境,拟在一块长为,宽为的长方形空地上修建如图所示的十字形花圃(非阴影部分),在花圃内种花,其余部分(阴影部分)种
网址: 投影运算 https://m.huajiangbk.com/newsview104662.html
上一篇: 属于化学性质的是 |
下一篇: 网球的四大赛事分别是什么 |