gpt4 book ai didi

c# - 按日期排序 ObservableCollection

转载 作者:行者123 更新时间:2023-11-30 21:06:59 24 4
gpt4 key购买 nike

我有一个收藏

private ObservableCollection<ContentItemViewModel> _contentTree;
public ObservableCollection<ContentItemViewModel> ContentTree
{
get { return _contentTree; }
}

类 ContentItemViewModel 具有属性:

 private string _published;
public string Published
{
get
{
return _published;
}
set
{
_published = value;

NotifyPropertyChanged("Published");
}
}

即 - node.Published= Convert.ToDateTime(date.Value).ToString("dd MMM yyyy", new DateTimeFormatInfo());

我需要按日期对 ContentTree 集合进行排序吗?我该怎么做?

最佳答案

我不知道有没有更好的方法,但是你可以做下面的事情。这里的想法是创建一个有序列表,并首先为有序列表中的每个项目,从内容树中删除并重新添加相关项目。

var tempList = _contentTree.OrderBy(p => DateTime.Parse(p.DateAndTime)); 

tempList.ToList().ForEach(q =>
{
_contentTree.Remove(q);
_contentTree.Add(q);
});

或者您可以使用比较;

Comparison<ContentItemViewModel> comparison = new Comparison<ContentItemViewModel>(
(p,q) =>
{
DateTime first = DateTime.Parse(p.DateAndTime);
DateTime second = DateTime.Parse(q.DateAndTime);
if (first == second)
return 0;
if (first > second)
return 1;
return -1;
});


List<ContentItemViewModel> tempList = _contentTree.ToList();
tempList.Sort(comparison);
_contentTree = new ObservableCollection<ContentItemViewModel>(tempList);

关于c# - 按日期排序 ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10798802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com