2016-10-27 4 views
0

여러 키워드를 검색하려고합니다. 그러나 내가 그 말을 찾아야한다는 것을 알았을 때조차도 그렇지 않습니다.C# 검색 기능이 필요한 키워드를 찾지 못했습니다.

private void btnSearch_Click(object sender, RoutedEventArgs e) 
{ 
    string[] SearchWords = txtSearchCriteria.Text.Split(' '); 

    string win810Words = "install setnetdir admin shortcuts"; 
    string win7Words = "win 7 win7 windows7 vista"; 

    string[] stringsToSearch = { "win810Words", "win7Words" }; 

    foreach (var searchWord in SearchWords) 
    { 
     foreach (var item in stringsToSearch) 
     { 
      if (item.Contains(searchWord)) 
      { 
       MessageBox.Show(searchWord + "found"); 
      } 
     } 
    } 
} 

나는 문제는 문자열 "searchWord"가 아니라 문자열 자체의 이름을보고 다음 행에 item.Contains 때문에

if (item.Contains(searchWord)) 

일어나고 알고있다. 문자열의 이름이 아닌 문자열의 내용을 검색하려면 어떻게해야합니까?

+1

대괄호가 필요하지 않을 수도 있습니다. 'string [] stringsToSearch = {win810Words, win7Words};'시도해보십시오. –

+1

@ MarkBenovsky 가장 확실합니다. OP는 문자 그대로 "win810Words"와 "win7Words"라는 문자열을 값과 반대로 전달했습니다. – Gavin

+0

"string [] stringsToSearch = (win810Words +" "+ win7Words) .Split (''); ' –

답변

6

현재 문자열 "win810Words""win7Words"을 찾고 있습니다. 문자열 값과 변수 win810Wordswin7Words의 값 사이에 엄청난 차이가 있습니다.

은 그래서 첫 번째 변화는 사용하는 것입니다 : 당신이 일치하고 싶어,

string[] stringsToSearch = { win810Words, win7Words }; 

다음을 경우 사용자 형식 만 단어의 부분, 예를 들어, "dir"내에서 "netdir"? 그렇다면 괜찮습니다. 그렇지 않은 경우 공백에 "검색 할 문자열"을 분할해야하며 검색 단어를 정확한 일치 (대소 문자를 구분하지 않음)로 결과 내에서 찾으십시오.

+0

오, 내 신기한 실수 야. 고맙습니다! – JimDel

관련 문제