如何根据特定索引对数组进行排序

本文关键字:数组 排序 索引 何根 | 更新日期: 2023-09-27 18:31:05

我有一个类似于以下代码的数组:

    struct Book_Struct
    {
        public string Title;
        public string Auther;
        public int Date;
        public int ID;
    }
    static void Print(Book_Struct[] a, int b)
    {
        for (int i = 0; i < b; i++)
        {
            Console.WriteLine("  Name of Book " + (i + 1) + " is : " + "'" " + a[i].Title + " '"");
            Console.WriteLine("Auther of Book " + (i + 1) + " is : " + "'" " + a[i].Auther + " '"");
            Console.WriteLine("  Date of Book " + (i + 1) + " is : " + "'" " + a[i].Date + " '"");
            Console.WriteLine("    ID of Book " + (i + 1) + " is : " + "'" " + a[i].ID + " '"");
            Console.WriteLine("'n---------------------------------'n");
        }
    } 

我想根据例如书名对这个数组进行排序。我该怎么做?

如何根据特定索引对数组进行排序

您可以使用Array.Sort

Array.Sort(a, (b1, b2) => b1.Title.CompareTo(b2.Title));

或 LINQ:

a = a.OrderBy(book => book.Title).ToArray();

后者需要重新创建数组。

顺便说一句,使用类而不是可变结构。

使用 LINQ 的OrderBy对数组进行排序:

a = a.OrderBy(x => x.Title).ToArray();

参考