Por que Enumerable.All retorna true para uma sequência vazia? [duplicado

Esta pergunta já tem uma resposta aqui:

Por que IQueryable.All () retorna true em uma coleção vazia? 11 respostas
var strs = new Collection<string>();
bool b = strs.All(str => str == "ABC");

O código cria uma coleção vazia de cadeias de caracteres e tenta determinar se todos os elementos da coleção são "ABC". Se você executá-lo,b será verdade.

Mas a coleção não possui nenhum elemento, muito menos elementos iguais a "ABC"

Isso é um bug ou existe uma explicação razoável?

questionAnswers(7)

yourAnswerToTheQuestion