gpt4 book ai didi

c# - Enumerable.Where - 如何阅读 API

转载 作者:行者123 更新时间:2023-11-30 21:16:26 27 4
gpt4 key购买 nike

我想具体了解为什么需要这个 Where<TSource>

Where 后面的类型是什么?告诉你?

我理解“this”的概念,这意味着它是一种扩展方法,但无法理解 Where 之后的类型

public static IEnumerable<TSource> Where<TSource>(
this IEnumerable<TSource> source,
Func<TSource, bool> predicate
)

最佳答案

Func<TSource, bool>是一个指向接受 TSource 函数的指针作为参数并返回 bool 值。例如,如果您具有以下功能:

public bool Foo(SomeType abc)
{
return abc.SomeProperty == "123";
}

如果你有 SomeType 的列表,你可以将它作为参数传递给 Where 方法:

SomeType[] values = ...
var result = values.Where(Foo);

您还可以使用匿名函数,这样就无需显式声明另一个函数:

SomeType[] values = ...
var result = values.Where(x => x.SomeProperty == "123");

更新:

我好像误解了这个问题。函数名后的类型 Where<TSource>表示 generic function定义。它表明此函数具有可以是任何类型的通用参数。所以例如当你写:

SomeType[] values = ...
var result = values.Where(x => x.SomeProperty == "123");

TSource等于 SomeType并且编译器能够自动从委托(delegate)中推断出它。您可以明确指定它,但这样写太多了:

SomeType[] values = ...
IEnumerable<SomeType> result = values.Where<SomeType>(x => x.SomeProperty == "123");

关于c# - Enumerable.Where - 如何阅读 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5205109/

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