我有一些我希望按值排序的列表,然后将它们反转。 两个列表不是按照自己的值对每个列表进行排序,而是按第二个列表的值排序。
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的值排序,但为什么?
答案 0 :(得分:0)
您正在为其他变量,orderedByCTM和orderedByCTW分配tempSectors。
所以它实际上是同一个列表。你用一种方式排序,然后另一种方式。然后你反转它,然后再反转它。
相反,也许复制一份。
orderedByCTW = tempSectors.ToList();
orderedByCTM = tempSectors.ToList();
现在你已经获得了相同原始列表的副本,而不仅仅是原始列表。