具有自定义Comparer <T>的OrderBy的Linq语法

Ste*_*ves 22 c# linq

任何给定的Linq表达式都有两种格式,带有自定义排序比较器:

格式1

var query =
    source
    .Select(x => new { x.someProperty, x.otherProperty } )
    .OrderBy(x => x, new myComparer());
Run Code Online (Sandbox Code Playgroud)

格式2

var query =
    from x in source
    orderby x // comparer expression goes here?
    select new { x.someProperty, x.otherProperty };
Run Code Online (Sandbox Code Playgroud)

问题:
第二种格式的order-by表达式的语法是什么?

不是问题:
如何使用自定义比较器,如第一种格式所示.

奖励积分:
上面列出的两种Linq格式是否有实际的正式名称?

Ree*_*sey 21

第二种格式的order-by表达式的语法是什么?

它不存在.从orderby子句文档:

您还可以指定自定义比较器.但是,只有使用基于方法的语法才能使用它.


如何以第一种格式使用自定义比较器.

你写的正确.你可以IComparer<T>按照你的写作传递.


上面列出的两种Linq格式是否有实际的正式名称?

格式1称为"基于方法的语法"(来自上一个链接),格式2是"查询表达式语法"(从此处).