如何使用 Lambda 表达式对对象内的整数进行排序?

发布于 2024-08-31 10:28:38 字数 350 浏览 4 评论 0原文

我有一个对象集合,我知道我可以通过说

collEquipment.Sort((x, y) => string.Compare(x.ItemName, y.ItemName));

WORKS 按 NAME(字符串类型)排序。

但我想按 ID(整数类型)排序,但没有 Int32.Compare 这样的东西,

那么我该怎么做呢?这行不通,

collEquipment.Sort((x, y) => (x.ID < y.ID));  //error

我知道答案会非常简单。 Lambda 表达式让我很困惑。

I have a collection of objects and I know that I can sort by NAME (string type) by saying

collEquipment.Sort((x, y) => string.Compare(x.ItemName, y.ItemName));

that WORKS.

But I want to sort by a ID (integer type) and there is no such thing as Int32.Compare

So how do I do this? This doesn't work

collEquipment.Sort((x, y) => (x.ID < y.ID));  //error

I know the answer is going to be really simple. Lambda expressions confuse me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

茶底世界 2024-09-07 10:28:38
collEquipment.Sort((x, y) => y.ID.CompareTo(x.ID));
collEquipment.Sort((x, y) => y.ID.CompareTo(x.ID));
乞讨 2024-09-07 10:28:38

在这里,根据实现 IComparable[] 的任何属性(int 所做的)对列表进行排序:

public static class ListExtensions {
    public static void Sort<TSource, TValue>(
        this List<TSource> list,
        Func<TSource, TValue> selector) {
        list.Sort((x,y) => Comparer<TValue>.Default
            .Compare(selector(x),selector(y)));
    }
}

现在:

collEquipment.Sort(x => x.ItemName);

collEquipment.Sort(x => x.ID);

Here you go, sort a list against any property that implements IComparable[<T>] (which int does):

public static class ListExtensions {
    public static void Sort<TSource, TValue>(
        this List<TSource> list,
        Func<TSource, TValue> selector) {
        list.Sort((x,y) => Comparer<TValue>.Default
            .Compare(selector(x),selector(y)));
    }
}

Now:

collEquipment.Sort(x => x.ItemName);

or

collEquipment.Sort(x => x.ID);
绿萝 2024-09-07 10:28:38

试试这个

collEquipment.Sort((x, y) => y.ID - x.ID);

try this

collEquipment.Sort((x, y) => y.ID - x.ID);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文