Benutzerdefinierte Sortierung der Liste <T>

Ich habe einList<T> woherT ist meinEvent Typ, der ein Feld hattime vom Typlong. Diese Liste wird von einem Webdienst ausgefüllt. Wenn für ein Ereignis keine Zeit festgelegt wurde, lautet der festgelegte Wert 0.

Ich möchte meine Liste nach der Zeit aufsteigend sortieren, aber die Elemente mit der Zeit = 0 ganz unten platzieren.

Momentan mache ich das auf eine Art Hack-Art und ich möchte einen besseren Weg lernen.

<code>var events = new ObservableCollection<Event>();
var resp = JsonConvert.DeserializeObject<Events>(restResponse.Content).Items;

var notime = resp.Where(r => r.time == 0);
var yestime = resp.Where(r => r.time > 0);

yestime.ToList().ForEach(events.Add);
notime.ToList().ForEach(events.Add);

CallbackInternal(callback, events);
</code>

Ich habe versucht, eine benutzerdefinierte zu implementierenIComparer, aber das hat nicht so gut geklappt (hier ist ein Schuss drauf)

<code>public class EventComparer : IComparer<Event>
{
    public int Compare(Event x, Event y)
    {
        if (x.time == 0) return 0;
        if (x.time < y.time) return -1;
        if (x.time > y.time) return 1;
        return 0;
    }
}
</code>

Anleitung wird geschätzt!

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage