Преобразовать список <string> в StringCollection
Мне нужна вышеуказанная функция, потому что я могу хранить StringCollection только в настройках, а не в списке строк.
Как преобразовать List в StringCollection?
Ответы
Ответ 1
Как насчет:
StringCollection collection = new StringCollection();
collection.AddRange(list.ToArray());
Альтернативно, избегая промежуточного массива (но, возможно, с большим количеством перераспределений):
StringCollection collection = new StringCollection();
foreach (string element in list)
{
collection.Add(element);
}
Преобразование назад с помощью LINQ:
List<string> list = collection.Cast<string>().ToList();
Ответ 2
Используйте List.ToArray()
, который преобразует List в массив, который вы можете использовать для добавления значений в StringCollection
.
StringCollection sc = new StringCollection();
sc.AddRange(mylist.ToArray());
//use sc here.
Прочитайте this
Ответ 3
Здесь используется метод расширения для преобразования IEnumerable<string>
в StringCollection
. Он работает так же, как и другие ответы, просто обертывает его.
public static class IEnumerableStringExtensions
{
public static StringCollection ToStringCollection(this IEnumerable<string> strings)
{
var stringCollection = new StringCollection();
foreach (string s in strings)
stringCollection.Add(s);
return stringCollection;
}
}
Ответ 4
Я бы предпочел:
Collection<string> collection = new Collection<string>(theList);