Citat:
Ursprungligen postat av
Runningsnail
Fixade problemet nu. Men när jag provade att sortera så kraschade programmet, då det säger att other = null.
Du är snabb!
Jag missade att du hade fix längd, och tomma element, i din array.
Sort-metoden, och därmed CompareTo, kommer att köra igenom alla element i din array. Eftersom du har deklarerat en längd på 24 så kommer de flesta positionerna att vara "tomma", de kommer att ha värdet null.
other.Name är då ett anrop på ett null-objekt.
Det finns lite olika sätt att komma till rätta med det problemet. Jag antar nu att du har listan "ordnad", dvs elementen börjar på index 0 och fortsätter inkrementellt utan "glapp" med tomma platser mitt i.
I så fall finns en variant av Sort-metoden som tar (Array array, int index, int length).
array: din array du vill sortera,
index: startindex för sortering (0),
length: antal element att sortera (4 i ditt exempel).
Så: Array.Sort(bottles, 0, 4) skulle lösa det.
4 blir ju då dynamisk. Antingen så använder du en variabel för att hålla kolla på antalet element du lagt till. Om du saknar en sån variabel, eller tycker det verkar bökigt att hålla ordning på, så skulle jag rekommendera att skriva en liten extension-method som räknar null-skilda objekt i arrayen och anropa den när du ska sortera.