Существует ли практическая разница между .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.