Метод Equals() не распознает похожие/одинаковые символы при сравненииC#

Место общения программистов C#
Anonymous
Метод Equals() не распознает похожие/одинаковые символы при сравнении

Сообщение Anonymous »

Почему сравнение символов с .Equals всегда возвращает false?

char letter = 'a';
Console.WriteLine(letter.Equals("a")); // false


В целом я пытаюсь написать переводчик с английского на азбуку Морзе. У меня возникла проблема со сравнением значений символов, показанных выше. Я начал с foreach, чтобы проанализировать все символы из входных данных ReadLine(), используя метод WriteLine(), все символы были транспонированы нормально, но при попытке сравнить их с помощью метода .Equals(), что бы я ни делал, он всегда выдает false при попытке сравнить символы.

Я успешно использовал метод .Equals() с другими строками, но, похоже, он не работает с моими символами.

using System;
public class MorseCode {
public static void Main (string[] args) {
Console.WriteLine ("Hello, write anything to convert it to morse code!");
var input = Console.ReadLine();
foreach (char letter in input) {
if(letter.Equals("a")) {
Console.WriteLine("Its A - live");
}
Console.WriteLine(letter);
}
var morseTranslation = "";
foreach (char letter in input) {
if(letter.Equals("a")) {
morseTranslation += ". _ - ";
}
if(letter.Equals("b")) {
morseTranslation += "_ . . . - ";
}
if(letter.Equals("c")) {
morseTranslation += "_ . _ . - ";
}
...
}
}
Console.WriteLine("In morse code, " + input + " is '"morseTranslation + "'");
}
}


В начале я написал foreach, чтобы проверить, распознал ли он и выполнил правильный вывод, но в конце, когда я написал «образец» в ReadLine(), он дал мне:

Hello, write anything to convert it to morse code!
sample
s
a
m
p
l
e

Вернуться в «C#»