Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将有序值应用于同一个BindingList?_C#_.net_Linq - Fatal编程技术网

C# 如何将有序值应用于同一个BindingList?

C# 如何将有序值应用于同一个BindingList?,c#,.net,linq,C#,.net,Linq,我有: var orderedStatItmes = item.Statistics.OrderByDescending(t=>t.StartTime); 注意 public BindingList<IStatistics> Statistics { set; get; } publicbindinglist统计信息{set;get;} 我需要的是将orderedStatistmes重新分配给项统计信息的最佳方法,这样它就应该就位了 怎么做 谢谢 我不能说我自己用了很多

我有:

var orderedStatItmes = item.Statistics.OrderByDescending(t=>t.StartTime); 
注意

public BindingList<IStatistics> Statistics { set; get; }
publicbindinglist统计信息{set;get;}
我需要的是将
orderedStatistmes
重新分配给
项统计信息的最佳方法,这样它就应该就位了

怎么做


谢谢

我不能说我自己用了很多
BindingList

如果您有权访问基础集合,则最好对其进行排序。或者,如果
BindingList
本身支持排序,则可能需要使用

一种骇人听闻的方法是:

var ordered = item.Statistics.OrderByDescending(t => t.StartTime).ToList();
for (int i = 0; i < ordered.Count; i++)
{
    item.Statistics[i] = ordered[i];
}
如果您想对数组进行基本排序(我假设它是一个数组,基于您的问题标题),您可以使用:

Array.Sort(item.Statistics, (x, y) => x.StartTime.CompareTo(y.StartTime));

我不能说我自己用了很多
BindingList

如果您有权访问基础集合,则最好对其进行排序。或者,如果
BindingList
本身支持排序,则可能需要使用

一种骇人听闻的方法是:

var ordered = item.Statistics.OrderByDescending(t => t.StartTime).ToList();
for (int i = 0; i < ordered.Count; i++)
{
    item.Statistics[i] = ordered[i];
}
如果您想对数组进行基本排序(我假设它是一个数组,基于您的问题标题),您可以使用:

Array.Sort(item.Statistics, (x, y) => x.StartTime.CompareTo(y.StartTime));

我可能遗漏了什么,但你不是已经这么做了吗?统计数据的类型是什么?是r/o还是r/w属性/字段?@AlexeiLevenkov我刚刚更新了这个问题。这是公共绑定列表统计信息{set;get;}我可能遗漏了一些信息,但你不是已经在做了吗?统计信息的类型是什么,是r/o还是r/w属性/字段?@AlexeiLevenkov我刚刚更新了这个问题。这是公共绑定列表统计信息{set;get;}谢谢!如果公共绑定列表统计数据{set;get;}@Peretz:那么这是一个非常不同的问题。这就是为什么在你的问题中要清楚的原因,这个问题根本没有提到
BindingList
,而是提到了数组。下次请在你的问题上多加努力。现在,您需要就地编辑绑定列表,还是可以创建一个新的绑定列表?我对
BindingList
了解不够,无法了解每个选择的后果。“绑定列表到位”正是我所需要的。(我刚刚更新了我的问题)@Peretz:老实说,你更新问题的方式没有多大意义。如果您为
项.Statistics
指定了一个新值,它将不会是就地排序,这在很大程度上取决于定义。谢谢!如果公共绑定列表统计数据{set;get;}@Peretz:那么这是一个非常不同的问题。这就是为什么在你的问题中要清楚的原因,这个问题根本没有提到
BindingList
,而是提到了数组。下次请在你的问题上多加努力。现在,您需要就地编辑绑定列表,还是可以创建一个新的绑定列表?我对
BindingList
了解不够,无法了解每个选择的后果。“绑定列表到位”正是我所需要的。(我刚刚更新了我的问题)@Peretz:老实说,你更新问题的方式没有多大意义。如果您为
item.Statistics
分配一个新值,它将不会是就地排序,这在很大程度上取决于定义。