c# - OrderByDescending() 根据 MSDN,这到底是什么意思?

标签 c# linq linq-to-sql msdn

谁能帮我拆开这里的元素并帮助我理解它们是什么?

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

什么是TSource和TKey?什么是键选择器? IOrderedEnumerable 到底是什么?

Func<> 是做什么的??

为什么 MSDN 如此神秘?

最佳答案

分解

  • TSource:这是集合中需要排序的元素类型
  • TKey:元素排序的类型键。
  • Func<TSource,TKey> : 代表将返回集合中给定元素的键

这个函数本质上是一个排序函数。因此,它需要一种方法来比较集合中的元素。这个特定的方法假定对于给定的对象,有一个相应的键值可以用来对它们进行排序。

以下面这个类(class)Student为例

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

如果我想对 Student 的集合进行排序通过他们的名字实例我可以做以下事情

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

在这种情况下,值如下

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

关于c# - OrderByDescending() 根据 MSDN,这到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1827224/

相关文章:

javascript - 如何在页面加载时将内部 html 的值获取到 C# 代码隐藏中

c# - 从每 6 秒更新一次的二进制日志文件读取 12k 数据

c# - 将查询添加到字段时,NEST Elasticsearch空响应

c# - 作为模拟 IQueryable 的 Provider 放什么

c# - 遍历子元素,找到一些东西并访问它的兄弟属性

c# - 以编程方式导航 linq to sql 结果

linq - 使用LINQ2SQL插入新的子级+父级

c# - 为控制台应用程序制作 UI

c# - 序列不包含任何元素?

c# - 如何正确管理 DataContext 的处置?