Зачем использовать автозагрузку PSR-0 или PSR-4 в композиторе, если карта классов на самом деле быстрее?
Потому что это более практично.
В производстве вы можете использовать карту классов (с composer dumpautoload -o
), потому что вы не добавите новый класс, но в среде разработчиков интересно иметь гибкость, обеспечиваемую PSR-0 или PSR-4 (то есть ничего для делать при добавлении новых классов).
Обновление: вы также можете использовать composer install -o
, это проще.
Как уже было предложено, используйте 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>;