Niestandardowe sortowanie listy <T>

mamList<T> gdzieT jest mójEvent typ, który ma poletime typulong. Ta lista jest wypełniana z usługi internetowej, a jeśli zdarzenie nie ma czasu, ustawiona wartość wynosi 0.

Chcę sortować listę rosnąco według czasu, ale umieść przedmioty z czasem = 0 na samym dole.

Obecnie wykonuję to w sposób hackowy i chcę się nauczyć lepszego sposobu.

<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>

Próbowałem wprowadzić zwyczajIComparer, ale to nie wyszło tak dobrze (tutaj jest jeden strzał)

<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>

wskazówki są mile widziane!

dzięki!

questionAnswers(5)

yourAnswerToTheQuestion