Этот вопрос мог бы казаться тривиальным и также глупым на первый взгляд, но это намного больше, чем это.
У меня есть массив любого типа T
(T[]
) и я хочу преобразовать его в универсальный Список (List<T>
). Есть ли какой-либо другой путь кроме создания Универсального списка, пересечения целого массива и добавления элемента в Списке?
Текущая ситуация:
string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>();
foreach(string s in strList)
{
listOfStr.Add(s);
}
Моя идеальная ситуация:
string[] strList = {"foo","bar","meh"};
List<string> listOfStr = strList.ToList<string>();
Или:
string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>(strList);
Я предлагаю последние 2 имен методов, поскольку я думаю компилятор или CLR
может выполнить некоторую оптимизацию на целых операциях, если Это хочет встроенный.
P.S.: Я не говорю о Array
или ArrayList
Ввести
Если я правильно понимаю ваш вопрос, один из имеющихся у вас сегментов кода будет работать. В C # строку нужно заключать в двойные кавычки, а не в одиночные.
string[] strList = {"foo","bar","meh"};
List<string> listOfStr = new List<string>(strList);
Если вы укажете System.Linq
, вы можете ввести:
string[] strList = {'foo','bar','meh'};
List<string> listOfStr = strList.ToList();
точно так, как хотите.
Второй синтаксис также должен работать.
object[] array = new object[10];
List<object> list = array.ToList();
Метод ToList является методом linq. Вам нужно добавить
using System.Linq;
Использовать:
using System.Linq;
string[] strList = {'foo','bar','meh'};
List<string> listOfStr = strList.ToList();