2013-03-25 70 views
1

我有以下List<string>從列表<string>選擇排在那裏匹配

List<string> RFD = new List<string>(File.ReadAllLines("FDIASNC"));

它讀取文件中有這樣的:

000821031300000000080
001921031300000000080
004221031300000000080
008121031300000000080
31300000000080
011221031300000000080
012221031300000000080
0128200313010000330790000033
207721031300000000080

所以,我想要的是找到一個匹配並選擇這一行,例如,如果我想讀取「0128」這一行,它將手動RFD [7],但我想搜索該行並輸出該行進行操作......任何想法?

謝謝。

編輯

我發現這一次我張貼,我是啞巴嘿嘿...謝謝你的答案,在10分鐘內,我會選擇一個作爲正確的:)

+0

如果(t.Any(O => o.Contains( 「yourvalue」) ))? – Daniil 2013-03-25 11:30:52

回答

2

你可以使用LINQ搜索:

var line = File.ReadAllLines("FDIASNC") 
       .FirstOrDefault(line => line.StartWith("0128")); 

if (line != null) 
{ 
    //Do something with this line 
} 

你並不需要創建一個List<string>因爲ReadAllLines回報IEnumerable<string>

如果文件很大,你可能會想通過ReadLines如果您想選擇只有一個通道使用延遲執行,而不是所有行加載到內存中

1
RFD.Where(r=>r.Contains("0128")).FirstOrDefault() 
1

的,你的標準相匹配,使用FirstSingle LINQ擴展方法。例如:

string str = RFD.First(line => line.StartWith("0128")); 

回報0128200313010000330790000033

1

像這樣的事情?

using System.Linq; 

// later in your program... 

foreach (string match in RFD.Where(l => l.StartsWith("0128"))) { 
    Console.WriteLine(match); 
} 
1

試試這個:

string line = RFD.FirstOrDefault(line => line.StartsWith("0128")); 

如果有與0128沒有行一開始,然後行空