首页 > 解决方案 > 在 c# 中使用 lambda 降序排列数组

问题描述

我想通过其变量“n_common”之一来订购对象数组,这给了我错误:

您不能在类型数组中转换 Lambda 表达式,因为它不是类型委托。

cartesian_product.Sort((a, b) => -1 * a.n_common.CompareTo(b.n_common));

我想对包含 3 个变量“p”、“q”和“n_common”的“Pair”对象进行降序排序,它应该按“n_common”排序,cartesian_product 是 Pair 对象的数组。

我不是仅使用 Lambda 表达式来使用 Linq,或者至少我是这样理解的,我将 linq 放在标题中,问题继续

标签: c#

解决方案


Sort是一个静态方法,所以它必须从类Array而不是实例中调用。尝试这个:

Array.Sort(cartesian_product, (a, b) => -1 * a.n_common.CompareTo(b.n_common));

推荐阅读