Проверка каждого элемента в массиве, чтобы увидеть, равен ли он строке - PullRequest
1 голос
/ 09 июня 2019

У меня есть несколько элементов в массиве, я хотел бы проверить, равна ли строка любому из этих элементов в массиве.Количество элементов в массиве может меняться в количестве.

Я посчитал количество элементов в массиве, надеясь получить какое-то преимущество, но не смог найти решение.

int ArrayCount = FinalEncryptText.Count();
foreach (string i in FinalEncryptText)
                {
                }

Ответы [ 3 ]

1 голос
/ 09 июня 2019

Используя предоставленную вами реализацию foreach, вы можете включить условие if с String.Equals() - как указано Sean ранее. Но стоит отметить, что String.Equals() без аргументов эквивалентно использованию оператора ==. Лучше, если вы укажете тип StringComparison.

Например, вы можете использовать следующее:

foreach(string element in myStringArray)
{
   if(element.Equals("someString", StringComparison.CurrentCultureIgnoreCase))
     ...
}

Подробнее о сравнении строк можно прочитать здесь .

0 голосов
/ 09 июня 2019

Я не уверен, как выглядит ваш метод, но я предполагаю ... вам дан случайный массив строк ... и вы хотите найти определенный элемент в этом массиве.Использование цикла foreach:

public string Check(string[] FinalEncryptText)
{
    foreach (string i in FinalEncryptText)
    {
       //let's say the word you want to match in that array is "whatever"
        if (i == "whatever")
        {
             return "Found the match: " + i;
        }
    }
}

Использование регулярного цикла for:

public string Check(string[] FinalEncryptText)
{
    for (int i = 0; i < FinalEncryptText.Count; i++)
    {
       //let's say the word you want to match in that array is "whatever"
        if (FinalEncryptText[i] == "whatever")
        {
             //Do Something
             return "Found the match: " + FinalEncryptText[i];
        }
    }
}

Теперь, если у вас уже есть фиксированный массив ... и вы передаете строку, чтобы проверить,эта строка существует в массиве, тогда она будет выглядеть примерно так:

public string Check(string stringToMatch)
{
    for (int i = 0; i < FinalEncryptText.Count; i++)
    {
       //this will match whatever string you pass into the parameter
        if (FinalEncryptText[i] == stringToMatch)
        {
             //Do Something
             return "Found the match: " + FinalEncryptText[i];
        }
    }
}
0 голосов
/ 09 июня 2019

Вы можете использовать метод String.Equals в операторе if. Больше информации о String.Metod здесь: https://docs.microsoft.com/en-us/dotnet/api/system.string.equals?view=netframework-4.8

if(firstString.Equals(secondString))
{
    //whatever you need to do here
}
...