我有:
var orderedStatItmes = item.Statistics.OrderByDescending(t=>t.StartTime);
注意
public BindingList<IStatistics> Statistics { set; get; }
我需要的是重新分配的最佳方式,orderedStatItmes
因此item.Statistics
它应该就位。
怎么做?
谢谢!!
我不能说我自己用BindingList<T>
的太多。
如果您可以访问它,您可能最好对基础集合进行排序。或者,如果它BindingList<T>
本身支持排序,您可能需要使用IBindingList.ApplySort
.
一种非常骇人听闻的做法是:
var ordered = item.Statistics.OrderByDescending(t => t.StartTime).ToList();
for (int i = 0; i < ordered.Count; i++)
{
item.Statistics[i] = ordered[i];
}
...但我不想说在更新时这会对任何绑定产生什么影响。
旧答案(在编辑提问题之前BindingList<T>
)
你的意思是你需要改变现有的数组,或者你很乐意只为item.Statistics
属性分配一个新的数组引用?如果是后者:
item.Statistics = item.Statistics.OrderByDescending(t=>t.StartTime).ToArray();
如果您想基本上对数组进行排序(我假设它是一个数组,根据您的问题标题),您可以使用:
Array.Sort(item.Statistics, (x, y) => x.StartTime.CompareTo(y.StartTime));