【发布时间】:2021-03-03 18:12:26
【问题描述】:
我有一个包含 DateTime 属性的对象列表。
使用DataPicker 和TimePicker,我创建了一个DateTime 对象,然后将其插入ObservableCollection<>。但是,我想根据DateTime 的时间顺序在列表中插入元素。如何找到合适的位置将其放入列表中?
public class HumorDiary
{
public DateTime Dt { get; set; }
}
HumorDiary obj= new HumorDiary();
obj.Dt= xx/xx/xxxx;
ObservableCollection<HumorDiary> listDiario = new ObservableCollection<HumorDiary>();
listDiario.Insert(Position????, obj);
【问题讨论】:
-
只需在插入新对象后对列表进行排序
-
listDiario.OrderBy(x => x.Dt);没事吧?
-
你为什么不试试看它是否有效?
-
可比较的对象,例如
DateTime或string(在副本中)具有CompareTo()方法,而IList<T>集合(例如ObservableCollection<T>)可以使用二进制搜索(虽然与List<T>不同,ObservableCollection` 没有内置方法,它很简单,可以自己实现)。您可以进行二分搜索或插入排序,这两种方法都在重复项的答案中进行了描述。
标签: c# xamarin.forms