Найти точно вхождение слова в списке C# .NET
Есть список содержащий текстовые данные.
Нужно каким-то образом без циклов (если это возможно) найти точное вхождение определённого слова.
Найти именно точное совпадение 100% - слова со словом в списке.
Ответы (1 шт):
Автор решения: Faraday
→ Ссылка
Можно использовать методы выборки Linq
, к примеру:
List<string> strings = new List<string>() { ... };
string searchString = "smth";
string? searchItem = strings.FirstOrDefault(item => item.Contains(searchString));
if (isExists)
{
// ...
}
Да, как уже указали в комментариях, это код на поиск любых совпадений. Поиск на точное совпадение будет выглядеть примерно вот так:
List<string> strings = new List<string>() { ... };
string searchString = "smth";
string? searchItem = strings.FirstOrDefault(item => item == searchString);
if (isExists)
{
// ...
}
Вообще, если вам нужно 100% нахождение, вы можете так же использовать метод .Find()
, но с ним нужно быть осторожным, по скольку он выбрасывает Exception
, если не смог ничего найти:
List<string> strings = new List<string>() { ... };
string searchString = "smth";
string searchItem = string.Empty;
try
{
searchItem = strings.First(item => item == searchString);
}
catch (Exception ex)
{
// ...
}
Или более "традиционный способ":
List<string> strings = new List<string>() { ... };
string searchString = "smth";
bool isExists = false;
for (int i = 0; i < strings.Count; i++)
{
if (strings[i] == searchString)
{
isExists = true;
break;
}
}
if (isExists)
{
// ...
}