2016-11-24 37 views
0
var reader = new StreamReader(File.OpenRead(@"C:\sample.csv")); 
List<string> listA = new List<string>(); 
string line1; 
Stream originalStream = null; 
while (!reader.EndOfStream) 
{     
    line1 = reader.ReadLine(); 
    listA.Add(line1);     
} 
listA.RemoveAt(0); 
originalStream = listA; 

在這裏,我試圖消除第一行和多數民衆贊成確定,但取出後我在字符串列表中的其他記錄,我想在一個流變量寫。 有人可以告訴我,我怎麼能實現這一點。刪除頭排流

感謝

+0

這看起來效率非常低,RemoveAt是O(n)操作。不要刪除標題,只需跳過將它添加到列表中。爲什麼你想要一個字符串列表流?你究竟想在這裏做什麼? – Martheen

+0

是否要將此列表寫入內存流或其他文件? – Seminda

+0

另一個流沒有文件 –

回答

2

讀取從文件中的所有行到一個列表,然後取出一會不公平,而是爲整個的過程中,我想建議你一個襯墊類似如下:

List<string> listA = System.IO.File.ReadAllLines(@"C:\sample.csv").Skip(1).ToList(); 

使用下面這幾行來製作Stream列表:

var binFormatter = new BinaryFormatter(); 
Stream streamList = null; 
binFormatter.Serialize(streamList, listA); 
+0

謝謝,實際上我試圖構建Biztalk管道組件,因爲輸出只能在流或streamreader按照我的知識 –

+0

有沒有辦法讀取流或streamreader中的文件,並跳過第一行(沒有列表) –

+0

我有幾個更新的答案,你可以看看 –