[C#] C #을 사용하여 문자열에 문자열 배열의 문자열이 포함되어 있는지 확인

C #을 사용하여 문자열 값에 문자열 배열의 단어가 포함되어 있는지 확인하고 싶습니다. 예를 들어

string stringToCheck = "text1text2text3";

string[] stringArray = { "text1", "someothertext", etc... };

if(stringToCheck.contains stringArray) //one of the items?
{

}

‘stringToCheck’의 문자열 값에 배열에 단어가 포함되어 있는지 어떻게 확인할 수 있습니까?



답변

당신이 그것을 할 수있는 방법은 다음과 같습니다

string stringToCheck = "text1";
string[] stringArray = { "text1", "testtest", "test1test2", "test2text1" };
foreach (string x in stringArray)
{
    if (stringToCheck.Contains(x))
    {
        // Process...
    }
}

업데이트 : 더 나은 솔루션을 찾고 있습니까? LINQ를 사용하는 @Anton Gogolev의 답변을 아래에서 참조하십시오.


답변

방법은 다음과 같습니다.

if(stringArray.Any(stringToCheck.Contains))
/* or a bit longer: (stringArray.Any(s => stringToCheck.Contains(s))) */

stringToCheck의 하위 문자열 중 하나가 포함되어 있는지 확인합니다 stringArray. 모든 하위 문자열이 포함되도록 Any하려면 All다음으로 변경 하십시오 .

if(stringArray.All(stringToCheck.Contains))


답변

이 시도:

LINQ를 사용할 필요가 없습니다

if (Array.IndexOf(array, Value) >= 0)
{
    //Your stuff goes here
}


답변

linq 방법을 사용하십시오.

stringArray.Contains(stringToCheck)


답변

가장 쉽고 샘플 방식.

  bool bol=Array.Exists(stringarray,E => E == stringtocheck);


답변

string strName = "vernie";
string[] strNamesArray = { "roger", "vernie", "joel" };

if (strNamesArray.Any(x => x == strName))
{
   // do some action here if true...
}


답변

아마도 이런 것 :

string stringToCheck = "text1text2text3";
string[] stringArray = new string[] { "text1" };
if (Array.Exists<string>(stringArray, (Predicate<string>)delegate(string s) {
    return stringToCheck.IndexOf(s, StringComparison.OrdinalIgnoreCase) > -1; })) {
    Console.WriteLine("Found!");
}