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

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

Всем привет! Я начинающий программист на C#. Я писал программу, и наткнулся на такую проблему:
Есть несколько "string" - различные вариации имён людей. К каждому имени есть свой массив с его вариациями(Напр.: Вася, Василий, ВАСЯ, ВАСИЛИЙ, итд.). Нужно использовать в массиве логическое "Или" - "||". Но когда я его использую, мне выдает ошибку - "Оператор "||" невозможно применить к операнду типа "string" и "string"". Возможно ли решить эту проблему? И если да - как? Пожалуйста помогите.
  • Вопрос задан
  • 752 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 2
    1 неделя
    Далее
Решения вопроса 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
Микропетпроджект - домашнее облако homeCloud
Ну дык код покажите, который ошибку выдает.
Оператор || можно использовать только для bool. Т.е. если вы хотите узнать, равна ли строка Вася или Василий, то это выглядит как то так:
bool isValid = your_sting == "Вася" || your_string == "Василий";


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

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

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