如何对结构C#进行排序

本文关键字:排序 结构 | 更新日期: 2023-09-27 18:28:50

我有这样的结构:

struct kluczyk
    {
        int id;
        char litera;
    }

列出清单:

List<kluczyk> posortuj = new List<kluczyk>();
        for (int i = 0; i < 10; i++)
        {
            kluczyk temp = new kluczyk(some char here, i);
            posortuj.Add(temp); 
        }

如何按文字对列表进行排序?

如何对结构C#进行排序

有一些非常简单的LINQ方法可以根据对象的属性进行排序。一种是OrderBy:

var sortedEnumerable = unsortedEnumerable.OrderBy(a => a.property);

同样,您可以使用OrderByDescending来确定上面的相反顺序:

var sortedEnumerable = unsortedEnumerable.OrderByDescending(a => a.property);

请注意,这些返回一个新的可枚举对象,并且不进行就地排序。

如果你需要更复杂的排序逻辑,或者你想对kluczyk对象本身进行排序,而不是对任何给定的属性进行排序,你会想创建自己的对象,实现IComparer,并在对象之间建立小于/等于/大于的关系。

Brad Christie包含了一个List(T).Sort (IComparer<T>)的链接,除非他想自己回答,否则我会在这里转载。