gpt4 book ai didi

c# - 如何解读 MSDN 上的 Select 方法文档?

转载 作者:太空狗 更新时间:2023-10-29 21:07:36 29 4
gpt4 key购买 nike

我一直在努力了解 LINQ,并得出结论:搜索数十个示例直到找到一个与我自己的 C# 应用程序接近的示例并没有教我如何钓鱼。

所以回到我立即遇到困难的文档。

有人可以帮我破译 msdn 上介绍的 Enumerable.Select 方法吗 http://msdn.microsoft.com/en-us/library/bb548891.aspx并由 Intellisense 作为提示给出?

Enumerable.Select(TSource, TResult) 方法 (IEnumerable(TSource>), Func(TSource, TResult))

如果有助于引用,这里是用行号分解的同一行:

  1. 可枚举.选择
  2. (TSource,TResult)
  3. 方法
  4. (IEnumerable(TSource>),
  5. 函数
  6. (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

让我们看一下参数:

  1. 第一个参数是IEnumerable<TSource> source — 来源,提供 TSource枚举。
  2. 第二个参数是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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com