Чтобы сортировать два массива в C#, вы можете использовать различные методы. Вот несколько подходов:
- Сжатие и сортировка. Вы можете использовать метод
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();
- Пользовательская сортировка. Если вы хотите отсортировать массивы на основе пользовательского критерия, вы можете использовать метод
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
- Сортированный словарь: вы также можете использовать
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#. Вы можете выбрать метод, который лучше всего соответствует вашим конкретным требованиям.