Na aula 3 do curso C# I: Fundamentos da linguagem foi dito que no C# a condição AND é feita com o &&. Na verdade pode ser feita somente com o & ou &&. A diferença é que quando se usa & todas as condições são validadas. Quando se usa && o sistema não avalia a segunda condição quando a primeira é false.
Mesma lógica para o | ou || que é usado no OR
https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/and-operator