2011-11-28 125 views
0

我有一個列表命名的簡單和它的所有對象都在下面的表格:C#中搜索兩個字符串在同一行

Tag: textbook - sacred texts Rec Id: 10011095 
Tag: advocacy Rec Id: 10037815 
Tag: advocacy Rec Id: 10043396 
Tag: advocacy Rec Id: 10037795 
Tag: advocacy Rec Id: 10031437 
Tag: advocacy Rec Id: 10035721 
Tag: advocacy Rec Id: 10024853 

和我有一個名爲fullList與喜歡的對象第二個列表:

10055853 What's the Matter with the Internet? by Mark Poster  academic 1  0,083 

10055853 What's the Matter with the Internet? by Mark Poster  computers  1  0,083 

10055853 What's the Matter with the Internet? by Mark Poster  internet 2  0,167 

爲了得到兩個字符串,我分割了simpe列表的每一行。 第一個在「標記:」之後和「Rec Id:」之前包含單詞,第二個包含Rec id之後的數字。

Example: tagGB = textbook - sacred texts 
rec_idGB = 10011095 

然後,我要搜索是否有IS'NT從同時包含(在同一行)這兩個字符串列表fullList任何線(對象)。

我試過:

foreach (String line in nonZeroList) 
     { 

      foreach (String line2 in Gblist) 
      { 

      rec_idGB = line.Split('\t')[0].Substring(4).Trim(); 
      tagGB = line.Split('\t')[2].Substring(7).Trim(); 

      if (line.Contains(rec_idGB) == false && line.Contains(tagGB) == false) 
      { 

      } 


     } 
    } 

,但我得到了很多,這並不線路包含字符串。 我想獲得作爲一個resutl只有rec_idGB和tagGB不是在同一行fullList。有什麼建議麼?

回答

1

我想獲得一個resutl只有rec_idGB和tagGB不在同一行的fullList。

所以你想要simpleList中的所有行都不能與fullList中的任何行匹配嗎? (還是你想在fullList每一行獲得simplelist中的所有行不匹配?我猜

foreach (string line in simpleList) 
{ 
    string rec_idGB = line.Split('\t')[0].Substring(4).Trim(); 
    string tagGB = line.Split('\t')[2].Substring(7).Trim(); 
    bool thereIsAMatch = false; 
    foreach (string line2 in fullList) 
    { 
     if (line2.Contains(rec_idGB) && line2.Contains(tagGB)) 
     { 
      thereIsAMatch = true; 
      break; 
     } 
    } 
    if(!thereIsAMatch) 
    { 
     // This is what you want? 
    } 
} 
0

難道你不應該比較line2而不是line?您從line解析出來,然後檢查它是否包含在line中,您剛解析出它。

如:

if (line2.Contains(rec_idGB) == false && line2.Contains(tagGB) == false) 

或者它可能是周圍的其他方式...你想從line2分析和比較line,真的不知道。

相關問題