Сортировка двух массивов вместе в C#: методы и примеры

Чтобы сортировать два массива в C#, вы можете использовать различные методы. Вот несколько подходов:

  1. Сжатие и сортировка. Вы можете использовать метод Zip, чтобы объединить элементы двух массивов в кортежи, отсортировать кортежи на основе определенного критерия, а затем снова разделить их на два. массивы. Вот пример:
int[] array1 = { 4, 2, 6 };
string[] array2 = { "Apple", "Orange", "Banana" };
var combined = array1.Zip(array2, (a, b) => new { Number = a, Fruit = b })
                     .OrderBy(item => item.Number)
                     .ToArray();
int[] sortedArray1 = combined.Select(item => item.Number).ToArray();
string[] sortedArray2 = combined.Select(item => item.Fruit).ToArray();
  1. Пользовательская сортировка. Если вы хотите отсортировать массивы на основе пользовательского критерия, вы можете использовать метод Array.Sortс пользовательской реализацией IComparer. Вот пример сортировки массива имен на основе соответствующего массива возрастов:
string[] names = { "John", "Alice", "Bob" };
int[] ages = { 30, 25, 35 };
Array.Sort(ages, names, Comparer<int>.Default);
// The arrays will be sorted based on the ages array
  1. Сортированный словарь: вы также можете использовать SortedDictionaryили SortedDictionaryдля поддержания отсортированного порядка массивов. Вот пример, в котором мы сортируем два массива на основе первого массива:
int[] array1 = { 4, 2, 6 };
string[] array2 = { "Apple", "Orange", "Banana" };
var sortedDictionary = new SortedDictionary<int, string>();
for (int i = 0; i < array1.Length; i++)
{
    sortedDictionary[array1[i]] = array2[i];
}
int[] sortedArray1 = sortedDictionary.Keys.ToArray();
string[] sortedArray2 = sortedDictionary.Values.ToArray();

Это всего лишь несколько методов сортировки двух массивов в C#. Вы можете выбрать метод, который лучше всего соответствует вашим конкретным требованиям.