每个MSDN的OrderByDescending(),这究竟是什么意思?

时间:2009-12-01 16:17:46

标签: c# linq linq-to-sql msdn

有人可以请帮忙拆开这里的元素并帮助我理解它们是什么吗?

public static IOrderedEnumerable<TSource> OrderByDescending<TSource, TKey>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector
)

什么是TSource和TKey?什么是keySelector?什么是IOrderedEnumerable?

Func&lt;&gt;做??

为什么MSDN如此神秘?

2 个答案:

答案 0 :(得分:11)

分解

  • TSource:这是集合中需要订购的元素类型
  • TKey:元素排序的类型键。
  • Func<TSource,TKey>:将为集合中的给定元素返回密钥的委托

此功能本质上是一种排序功能。因此,它需要一种方法来比较集合中的元素。该特定方法假定对于给定对象,存在可以对其进行排序的对应键值。

以下面的班级学生

为例
class Student { 
  string Name { get; set; }
  ...
}

如果我想按名称对Student个实例的集合进行排序,我可以执行以下操作

IEnumerable<Student> col = GetTheStudents();
var ordered = col.OrderByDescending( x => x.Name );

在这种情况下,值如下

  • TSource:Student
  • TKey:String
  • Func<TSource,TKey>:这是传入的lambda表达式x => x.Name

答案 1 :(得分:3)

我只是想知道,在MSDN上究竟有什么不清楚? 以下是主题:http://msdn.microsoft.com/en-us/library/bb548916.aspx

以下是您对该主题提出的问题的一些答案:

  

类型参数

     

TSource - 源元素的类型。

     

TKey - keySelector返回的密钥类型。

     

<强>参数

     

source - 要订购的一系列值。

     

keySelector - 从元素中提取键的函数。

     

comparer - 用于比较密钥的IComparer。

     

返回值

     

IOrderedEnumerable,其元素根据键按降序排序。

此外,还有备注和示例。你在这里发布的内容只是该方法的一个标志。