typeのフィールドを持つ where is my typeがList<T>
ありT
ます。このリストは Web サービスから取り込まれ、イベントに時間がない場合、設定される値は 0 です。 Event
time
long
私がやりたいのは、リストを時間の昇順で並べ替えることですが、時間= 0のアイテムを一番下に配置します。
現在、私はハックのような方法でこれを達成しており、より良い方法を学びたいと思っています.
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);
私はカスタムを実装しようとしましたIComparer
が、うまくいきませんでした(これはその一例です)
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;
}
}
ご指導よろしくお願いします!
ありがとう!