如何根据特定索引对数组进行排序
本文关键字:数组 排序 索引 何根 | 更新日期: 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();
参考