Я задавался вопросом, возможно ли бросить IEnumerable к Списку. Там какой-либо путь состоит в том, чтобы сделать это кроме копирования каждого объекта в список?
Как уже было предложено, используйте yourEnumerable.ToList ()
. Он выполняет перечисление через ваш IEnumerable
, сохраняя содержимое в новом List
. Вы не обязательно копируете существующий список, так как ваш IEnumerable
может лениво генерировать элементы.
Это именно то, что предлагают другие ответы, но более четко. Вот его разборка, чтобы вы могли быть уверены:
public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
return new List<TSource>(source);
}
// с использованием System.Linq;
Используйте метод .ToList (). Найдено в пространстве имен System.Linq.
var yourList = yourEnumerable.ToList();
https://docs.microsoft.com/en-us/dotnet/api/system.linq?view=netcore-2.2
Создать новый список и передайте старый IEnumerable его инициализатору:
IEnumerable<int> enumerable = GetIEnumerable<T>();
List<int> list = new List<int>(enumerable);
нет, вы должны скопировать, если вы уверены, что ссылка является ссылкой на список, вы можете преобразовать следующим образом
List<int> intsList = enumIntList as List<int>;