Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Установить, присутствует ли элемент в массиве (С#)

#c_sharp #массивы


Есть переменная, содержащая имя, например:

string name = "Коля"; 


и массив, содержащий имена, например:

string[] array = { "Коля", "Федя", "Фрося", "Мотя" };


Как проверить, есть ли имя, указанное в переменной, в массиве?
    


Ответы

Ответ 1



Можно сделать несколькими различными способами, к примеру: string name = "Коля"; string[] array = { "Коля", "Федя", "Фрося", "Мотя" }; // Способ #1 foreach (string str in array) { if (str == name) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } } // Способ #2 if (array.Any(str => str == name)) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } // Способ #3 if (array.Contains(name)) { Console.WriteLine(string.Format("Слово '{0}' содержится в массиве", name)); // to do something... } Список полезных ссылок на MSDN для изучения: foreach, in (Справочник по C#) Enumerable.Any - метод String.Contains - метод Intersect - метод

Ответ 2



Можно воспользоваться классом HashSet и методом Contains string name = "Коля"; string[] array = { "Коля", "Федя", "Фрося", "Мотя" }; var hash = new HashSet(array); if (hash.Contains(name)) { Console.WriteLine(string.Format("Слово '" + name + "' содержится в массиве")); //... }

Ответ 3



Через LINQ bool result = array.Any(n => n == name);

Ответ 4



Выяснить, содержит ли массив искомый элемент, или нет, можно с помощью функций Array.Exists или Array.IndexOf: contains = Array.IndexOf(array, name) != -1; или contains = Array.Exists(array, v => v == name);

Ответ 5



Через List<> (net 2.0) List lst= new List(array); bool result = (lst.IndexOf(name) >=0); можно упростить ((IList)array).IndexOf(name);

Комментариев нет:

Отправить комментарий