2016-10-27 17 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"); 
      } 
     } 
    } 
} 

我知道問題出在只盯着字符串「搜索內容」,而不是字符串本身的名稱在下一行發生

if (item.Contains(searchWord)) 

因爲item.Contains。我怎樣才能讓它搜索字符串的內容,而不是字符串的名稱?

+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 }; 

接下來,你希望它匹配,如果用戶只種一個字的部分,例如「nedir」中的「dir」?如果是這樣,這很好。如果不是的話,你應該將空間上的「字符串進行搜索」,並在搜索結果中查找精確匹配(可能不區分大小寫)的搜索詞。

+0

哦,我的,是一個新手的錯誤。謝謝! – JimDel