2016-08-19 42 views
0

嘿傢伙,我需要一些幫助; 我有something.txt包含多行c#過濾器

4 10:06:29  0  0   0 

2 10:06:30  0  0   0 

9 10:06:31  0  0   0 

4 10:06:32  0  0   0 

7 10:06:31  0  0   0 

東西格式類似的

然後我有一些代碼

System.IO.StreamReader file = new System.IO.StreamReader(path); 
var lines1 = File.ReadAllLines(path).First(s => s.StartsWith(tempvar)); 
listBox1.Items.Add(lines1); 

我需要過濾(GRAP)多條線路,與4號開頭(例如) 我的代碼爲他在文件(.txt文件)中找到的第一行執行此操作,需要多行幫助

+0

那麼你顯示的代碼有什麼問題? – DavidG

+0

您告訴它讀取以您的過濾器開始的第一行'var lines1 = File.ReadAllLines(path).First(s => s.StartsWith(tempvar));'。如果將其更改爲'var lines1 = File.ReadAllLines(path).Where(s => s.StartsWith(tempvar))。ToList();''我認爲它應該返回所有以過濾器開頭的行。 – elloco999

+0

爲什麼你爲這個文件創建一個閱讀器,然後使用'File.ReadAllLines'來代替? – juharr

回答

2

在Linq查詢中替換FirstWhere應該這樣做。

System.IO.StreamReader file = new System.IO.StreamReader(path); 
var listBox1 = File.ReadAllLines(path).Where(s => s.StartsWith(tempvar)).ToList(); 
+1

而你甚至不需要第一行,因爲你的「文件」字段沒有使用。 – RobC

+0

謝謝,幫助很大,我做了類似之前,但沒有.ToList –

+0

請確保在開始時沒有空間。 –