Существует ли практическая разница между .All()
и .TrueForAll()
при работе на List
? Я знаю, что .All()
является частью IEnumerable
, поэтому зачем добавлять .TrueForAll()
?
Разница между List.All() и List.TrueForAll()
Ответ 1
Из docs для List<T>.TrueForAll
:
Поддерживается в версиях: 4, 3.5, 3.0, 2.0
Поэтому он был добавлен до Enumerable.All
.
То же самое верно для множества других методов List<T>
, которые работают аналогично их LINQ-аналогам. Обратите внимание, что ConvertAll
несколько отличается тем, что имеет преимущество в том, что он работает над List<T>
и создает List<TResult>
, поэтому он получает возможность распределять все, что ему нужно.
Ответ 2
TrueForAll
существовал в .NET 2.0, прежде чем LINQ был в .NET 3.5.
Смотрите: http://msdn.microsoft.com/en-us/library/kdxe4x4w(v=VS.80).aspx
Ответ 3
TrueForAll
представляется специфичным для List, тогда как All
является частью LINQ.
Я предполагаю, что первое относится к .NET 2 дням, а последнее - к .NET 3.5.
Ответ 4
В принципе, поскольку этот метод существовал до того, как Linq сделал. TrueForAll в списке возник из Framework 2.0.
Ответ 5
TrueForAll
не является методом расширения и в рамках версии 2.