Сортировка списков и обратное их не работает - PullRequest
0 голосов
/ 12 июня 2018

У меня есть несколько списков, которые я хочу упорядочить по значению и затем изменить их.Вместо того, чтобы упорядочивать каждый список по своим собственным значениям, оба списка упорядочивались по значениям второго.

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 голосов
/ 12 июня 2018

Вы присваиваете tempSectors для обеих ваших других переменных, orderByCTM и orderByCTW.

Так что это фактически один и тот же список.Вы сортируете это одним способом, затем другим.Затем вы переворачиваете его и снова переворачиваете.

Вместо этого, возможно, сделайте копию.

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

Теперь у вас есть копии того же оригинального списка, а не только оригинального списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...