2014-02-27 152 views
0

我嘗試讀取大文件,所以我想,而不是與數組循環我決定用一個列表的一部分字符串,但我有與搜索的一些困難包含需要搜索的單詞的行。這裏是我的代碼指數包含字符串(一個字)

public List<string> AWfile = new List<string>(); 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (File.Exists(@"C:\DataFolder\file.txt")) 
     { 
      using (StreamReader r = new StreamReader(@"C:\DataFolder\file.txt")) 
      { 
       string line; 
       while ((line = r.ReadLine()) != null) 
       { 
        AWfile.Add(line); label1.Text = "ListWritten!"; label1.BackColor = Color.Green; 
       } 
      } 
     } 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     int linen = AWfile.IndexOf("A102"); 
     label2.Text = Convert.ToString(linen); 
    } 

所以我的問題是,如果有什麼辦法可以在列表中,而不是整個串詞的部分只是搜索,因爲這是唯一的辦法了.IndexOf返回我任何事情所有。

回答

1

你可以嘗試這樣的:

var result = list.Select(x => x.Contains("hello")).ToList() 

這將導致一個列表,在其中包含了「你好」列表中的所有元素。

如果你想要做的事只有這個元素:

list.Select(x => x.Contains("hello")).ToList().ForEach(x => DoSomething(x)); 

我希望這有助於

0

如果我正確理解你的問題......你是在一個文件中讀取並添加每一行到一個列表。然後,你要檢查是否有這些線包含字的部分。這樣做是做了每條線路的foreach循環在你的清單,檢查是否行包含部分字的

的一種方式。

喜歡的東西:

foreach(var line in AWFile) 
{ 
    if(line.Contains("PartialWordWeWant")) 
    { 
     // Do something with the line that contains the word we are looking for 
    } 
} 
相關問題