Если вы знаете , который вы хотите конвертировать из List<T1>
в List<T2>
, тогда List<T>.ConvertAll
будет немного более эффективным, чем Select
/ ToList
, потому что он знает Точный размер для начала:
target = orig.ConvertAll(x => new TargetType { SomeValue = x.SomeValue });
В более общем случае, когда вы знаете об источнике только как IEnumerable<T>
, используйте Select
/ ToList
. Вы могли бы также утверждать, что в мире с LINQ начинать более идиоматично ... но стоит хотя бы знать о опции ConvertAll
.