gpt4 book ai didi

c# - 使用 OrderBy(IEnumerable, Func)

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

我想通过例子来理解TSource,Tkey的概念。

我们有代码

        class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}

public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };

IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);

foreach (Pet pet in query)
{
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
}

/*
This code produces the following output:

Whiskers - 1
Boots - 4
Barley - 8
*/

我们可以说 TSource 是“pet”,键是“Age”并且 pet => pet.Age 是

 Func<TSource, TKey>?

谢谢。

最佳答案

不,TSource是类型 Pet , 和 TKey是类型 int .所以不使用类型推断,你会:

IEnumerable<Pet> query = pets.OrderBy<Pet, int>(pet => pet.Age);

TSourceTKeygeneric type parameters的方法。您可以将它们视为类的通用类型参数……因此在 List<T> 中, T是类型参数,如果你写:

List<string> names = new List<string>();

那么这里的类型参数string (所以你可以说 T=string 在这种情况下,用手波浪的方式)。

您的情况的不同之处在于,编译器根据方法调用参数推断您的类型参数。

关于c# - 使用 OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012812/

27 4 0