- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在努力了解 LINQ,并得出结论:搜索数十个示例直到找到一个与我自己的 C# 应用程序接近的示例并没有教我如何钓鱼。
所以回到我立即遇到困难的文档。
有人可以帮我破译 msdn 上介绍的 Enumerable.Select 方法吗 http://msdn.microsoft.com/en-us/library/bb548891.aspx并由 Intellisense 作为提示给出?
Enumerable.Select(TSource, TResult) 方法 (IEnumerable(TSource>), Func(TSource, TResult))
如果有助于引用,这里是用行号分解的同一行:
最佳答案
从您引用的 MSDN 文章中查看此方法在 C# 中的定义可能会有所帮助:
public static IEnumerable<TResult> Select<TSource, TResult>(
this IEnumerable<TSource> source,
Func<TSource, TResult> selector
)
<
尖括号 >
表示此泛型方法的类型参数,我们可以通过查看类型参数的作用来开始探索该方法的用途。
我们首先查看泛型方法的名称:
Select<TSource, TResult>
这告诉我们调用了 Select
的方法处理两种不同的类型:
TSource
;和TResult
让我们看一下参数:
IEnumerable<TSource> source
— 来源,提供 TSource
枚举。Func<TSource, TResult> selector
— 采用 TSource
的选择器函数并将其变成 TResult
. (这可以通过探索 Func
的定义来验证)然后我们看它的返回值:
IEnumerable<TResult>
我们现在知道这个方法会返回一个 TResult
枚举。
总而言之,我们有一个函数接受 TSource
的枚举。 , 和一个选择器函数,它接受单独的 TSource
元素和返回 TResult
项,然后整个 select 函数返回一个枚举 TResult
.
一个例子:
具体来说,可以说 TSource
类型为 Person
(代表一个人的类,具有姓名、年龄、性别等)和TResult
类型为 String
(代表人名)。我们要给出 Select
函数列表 Person
s 和一个函数,给定一个 Person
将只选择他们的名字。作为调用此 Select
的输出函数,我们将得到 String
的列表s 只包含人名。
旁白:
原始方法签名的最后一 block 拼图,在顶部,是 this
第一个参数之前的关键字。这是定义 Extension Methods 的语法的一部分,它的本质意思是,您可以直接在枚举上调用 Select 方法,而不是调用静态 Select 方法(传入您的源枚举和选择器函数),就像它有一个 Select
一样。方法(并且只传入一个参数——选择器函数)。
我希望这能让你更清楚吗?
关于c# - 如何解读 MSDN 上的 Select 方法文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787512/
引言 深拷贝是指创建一个新对象,该对象的值与原始对象完全相同,但在内存中具有不同的地址。这意味着如果您对原始对象进行更改,则不会影响到复制的对象 常见的C#常见的深拷贝方式有以下4类:
人工智能是一种未来性的技术,目前正在致力于研究自己的一套工具。一系列的进展在过去的几年中发生了:无事故驾驶超过300000英里并在三个州合法行驶迎来了自动驾驶的一个里程碑;IBM Waston击败了
我已经阅读了所有 HERE Maps API 文档,但找不到答案。 HERE实时流量REST API输出中的XML标签是什么意思? 有谁知道如何解释这个输出(我在我的请求中使用了接近参数)? 最佳答
我的 iPad 应用程序工作正常,我将其留在现场进行测试,但现在崩溃了[保存时?] 这是崩溃日志, Incident Identifier: 80FC6810-9604-4EBA-A982-2009A
我的程序需要 qsort 的功能才能运行,但到目前为止还没有完成它的工作。 我实际上是在对单个字符值的数组进行排序,以便将它们分组,这样我就可以遍历数组并确定每个属性的计数。我的问题是 qsort 返
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我正在尝试使用 AVR 代码对 Arduino Uno 进行编程,因为我不被允许在 9 月份开始的高级项目中使用 Arduino 库。我找到了数据表,让数字引脚正常工作,然后尝试通过 USB 串行连接
我遇到了多次崩溃,似乎 native iOS 方法正在从第三方库调用函数。这是一个例子: Thread: Unknown Name (Crashed) 0 libsystem_kernel.d
我理解如何按照 Dijkstra 算法的解释找到从头到尾的最短路径,但我不明白的是解释。在这里,从图中的图形来看,从 A 到 E 添加到我已知集合的顺序是 A,C,B,D,F,H,G,E 我没有得到的
我正在查看一些 Django 源代码并遇到了 this . encoding = property(lambda self: self.file.encoding) 究竟是做什么的? 最佳答案 其他两
Sentry 提供了很好的图表来显示消息频率,但关于它们实际显示的内容的信息很少。 这些信息是每分钟吗? 5分钟? 15分钟?小时? 最佳答案 此图表按分钟显示。这是负责存储该图数据的模型。 http
我对 JavaScript 和 Uniswap 还很陌生。我正在使用 Uniswap V3 从 DAI/USDC 池中获取价格。我的“主要”功能如下所示: async function main()
我正在尝试弄清楚我下载的 Chrome 扩展程序是如何工作的(这是骗子用来窃取 CS:GO 元素的东西,并不重要...)。我想知道使用什么电子邮件地址(或使用什么其他通信方式)来提交被钓鱼的数据。 这
引言 今天同事问了我一个问题, System.Windows.Forms.Timer 是前台线程还是后台线程,我当时想的是它是跟着UI线程一起结束的,应该是前台线程吧? 我确实没有仔
我需要一些使用 scipy.stats.t.interval() 函数的帮助 http://docs.scipy.org/doc/scipy/reference/generated/scipy.sta
当我在 Oracle 查询计划中看到类似的内容时: HASH JOIN TABLE1 TABLE2 这两个表中的哪一个是 hashed ? Oracle 文档指的是通常被散列的“较小”
我想知道 GridSearchCV 返回的分数与按如下方式计算的 R2 指标之间的差异。在其他情况下,我收到的网格搜索分数非常负(同样适用于 cross_val_score),我将不胜感激解释它是什么
本文分享自华为云社区《 多主创新,让云数据库性能更卓越 》,作者: GaussDB 数据库。 华为《Taurus MM: bringing multi-master to the clou
我真的需要一些帮助来破译这个崩溃报告: Process: Farm Hand [616] Path: /Applications/Farm
我写了一个从 YUV_420_888 到 Bitmap 的转换,考虑到以下逻辑(据我所知): 总结该方法:内核的坐标 x 和 y 与 Y 平面(2d 分配)的非填充部分的 x 和 y 以及输出位图的
我是一名优秀的程序员,十分优秀!