字符串数组如何使用 <string,string> 调用通用 Select 方法

How Can a String Array Call Generic Select Method with <string,string>

我是泛型 类 和泛型方法的新手。我有一个简单的 cpode:

Func<string, string> selector = str => str.ToUpper();
string[] words = { "orange", "apple", "Article", "elephant" };
IEnumerable<String> aWords = words.Select(selector);

当我查看 Select 方法时,它说:

IEnumerable<String> IEnumerable<String>.Select<String, String>(Func<string,string> collector)

Select 泛型方法如何知道即将到来的 String,String 类型?它是否隐含地来自 "selector" 委托?我真的很困惑。

谢谢

C# 编译器会推断 Select 的类型参数,因此您不必键入它们。它将这些类型刻录到编译的程序集中。

Does it implicitly come from "selector" delegate?

没错。 C# 有一些类型推断,所以你必须输入更少。

Select 方法本身并不知道调用它的是哪段代码。它只知道正确提供了类型参数。