C# сравнить строки на другом языке

У меня есть несколько строк на разных языках; например:

  • "Кот Джест Добры" (на польском языке)
  • "кошка хороша" (на английском)

Это заголовки кнопок, которые переведены с английского на язык, выбранный пользователем.

Какой лучший способ сравнить эти подписи, программно?

2 ответа

Решение

Поскольку обе строки являются переводами друг друга, вы можете вести таблицу перевода, и если вы хотите узнать, совпадают ли две строки, вы можете просто найти их в своей таблице и, если они окажутся в одной строке, то они равный например

class TranslatedText
{
      public int Id {get; set; }
      public string Language {get; set; }
      public string Text {get; set; }
}

Так что заполните список TranslatedText объекты с каждой строкой и назначить один и тот же идентификатор для тех же частей текста. Позже для сравнения вы можете найти соответствующий объект в списке и проверить Id следующим образом

var first = translatedTextList.FirstOrDefault(t=>t.Text.Equals(firstString));
var second = translatedTextList.FirstOrDefault(t=>t.Text.Equals(secondString));
bool areSame = (first != null & second !=null & first.Id == second.Id);
return areSame;

Предполагая, что строки, которые вы хотите сравнить, называются firstString а также secondString;

Переопределите функцию.equal() или преобразуйте ее в массив char и сравните!

здесь вы найдете КАК:

http://msdn.microsoft.com/en-us/library/ms173147.aspx

Другие вопросы по тегам