Я делаю программу, которая многое делает с списком автомобилей, проверяя все, и последнее, что мне нужно сделать, это сортировать эти машины по алфавиту по строкам. Вот код, который не работает, как это должно быть.Любые идеи, почему эта сортировка в алфавитном порядке не работает?
for (int j = 0; j < towns[townNo].townVehicleCount-1; j++) {
for (int k = 1; k < towns[townNo].townVehicleCount; k++) {
int identical;
identical = towns[townNo].Vehicles[j].Brand.CompareTo(towns[townNo].Vehicles[k].Brand);
if (identical == 1) {
towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1] = towns[townNo].Vehicles[j];
towns[townNo].Vehicles[j] = towns[townNo].Vehicles[k];
towns[townNo].Vehicles[k] = towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1];
}
if (identical == -1) {
towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1] = towns[townNo].Vehicles[k];
towns[townNo].Vehicles[k] = towns[townNo].Vehicles[j];
towns[townNo].Vehicles[j] = towns[townNo].Vehicles[towns[townNo].townVehicleCount + 1];
}
}
}
Что происходит? несортированное, неизмененное, исключение? –
@HenkHolterman он сортирует, но кажется случайным образом. здесь https://i.imgur.com/XC05W6t.jpg –
Если «города [городNo] .Vehicles» имеет тип «IEnumerable», вы можете просто позвонить в OrderBy (v => v.Brand) –