排序列表和反转它们不起作用

时间:2018-06-12 00:53:28

标签: c# list sorting

我有一些我希望按值排序的列表,然后将它们反转。 两个列表不是按照自己的值对每个列表进行排序,而是按第二个列表的值排序。

List<Sector> tempSectors = Lists.LSectors;
List<Sector> orderedByCTW = new List<Sector>();
List<Sector> orderedByCTM = new List<Sector>();

orderedByCTW = tempSectors;
orderedByCTM = tempSectors;

orderedByCTW.Sort((s1, s2) => s1.CLTW.Count.CompareTo(s2.CLTW.Count));
orderedByCTM.Sort((s1, s2) => s1.CLTM.Count.CompareTo(s2.CLTM.Count));
orderedByCTW.Reverse();
orderedByCTM.Reverse();
Utility.MostValueableSectorTW = orderedByCTW.FirstOrDefault();
Utility.MostValueableSectorTM = orderedByCTM.FirstOrDefault();

orderedByCTW也按CTM的值排序,但为什么?

1 个答案:

答案 0 :(得分:0)

您正在为其他变量,orderedByCTM和orderedByCTW分配tempSectors。

所以它实际上是同一个列表。你用一种方式排序,然后另一种方式。然后你反转它,然后再反转它。

相反,也许复制一份。

orderedByCTW = tempSectors.ToList();
orderedByCTM = tempSectors.ToList();

现在你已经获得了相同原始列表的副本,而不仅仅是原始列表。