Как создать несколько списков из одного списка - PullRequest
0 голосов
/ 29 октября 2018

Я занимаюсь исследованием методов множественной сортировки в C #. Для этого мне нужно создать список для сортировки, а затем отсортировать этот список, используя методы сортировки. Проблема в том, что я не знаю простого способа сделать копию этого списка без создания около 100 уникальных списков, чтобы я мог эффективно протестировать каждый метод.

-Есть простой способ создать несколько копий списка эффективным способом.

-Есть ли способ очистить список, а затем заново заполнить его исходным списком избавляя от необходимости создавать множество уникальных списков.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Вы можете скопировать список в другой, как показано ниже

List<string> source = new List<string> { "one", "two", "three" };
List<string> target;

// simplest all source ellements from list constructor
target = new List<string>(source);

Другой способ использования цикла

// loop with condition
target = new List<string>();
foreach (string item in source)
{
   target.Add(item);                
}
0 голосов
/ 29 октября 2018

Пример списка:

var list1 = new List<string>();

-Есть простой способ создать несколько копий списка эффективным способом.

var list2 = list1.ToList();

-Есть ли способ очистить список, а затем заново заполнить его исходным списком, избавляя от необходимости создавать множество уникальных списков.

var list2 = new List<string>(list1);
list2.Clear();
list2.AddRange(list1);
list2.Clear();
list2.AddRange(list1);

** Обратите внимание, что при использовании .Clear Capacity списка не сбрасывается. Поскольку мы просто используем один и тот же список источников без изменения размера, я не думаю, что это проблема для вас. Если бы вы меняли количество тестовых заданий между тестами, я бы инициализировал список с емкостью, соответствующей размеру самого большого списка в вашем наборе тестов.

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