Задать вопрос
@Tony1337

C# — Возможно ли(как) использовать «||» в массиве?

Всем привет! Я начинающий программист на C#. Я писал программу, и наткнулся на такую проблему:
Есть несколько "string" - различные вариации имён людей. К каждому имени есть свой массив с его вариациями(Напр.: Вася, Василий, ВАСЯ, ВАСИЛИЙ, итд.). Нужно использовать в массиве логическое "Или" - "||". Но когда я его использую, мне выдает ошибку - "Оператор "||" невозможно применить к операнду типа "string" и "string"". Возможно ли решить эту проблему? И если да - как? Пожалуйста помогите.
  • Вопрос задан
  • 747 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
Нет таким образом оператор II использовать нельзя. Однако можно "прокачать" массив с помощью методов расширения.
static class Program
    {
        static bool HasName(this IEnumerable<string> list, string name)
        {
            return list.Any(n => string.Compare(n, name, StringComparison.OrdinalIgnoreCase) == 0);
        }

        static void Main(string[] args)
        {
            var list = new string[] {"Вася", "Василий", "Вась"};
            var name = "ВАСЯ";
            if (list.HasName(name))
                Console.WriteLine("Совпало");
            else
                Console.WriteLine("Ошибка");
            Console.ReadLine();
        }
    }
Ответ написан
GavriKos
@GavriKos
Ну дык код покажите, который ошибку выдает.
Оператор || можно использовать только для bool. Т.е. если вы хотите узнать, равна ли строка Вася или Василий, то это выглядит как то так:
bool isValid = your_sting == "Вася" || your_string == "Василий";


Вместо контант можете элементы массива подстваить, обернуть все это дело в цикл и т.д.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы