2013-03-22 41 views
1

我在CSV的格局如何分隔CSV分隔數據並相應存儲值?</p> <pre> A,B,C,D B,C,D,E C,D,E,F D,E,F,G . . . </pre> <p>雖然我想在下面的方式做,我丟失:

 
A,B,C,D,E,F,G 

C,F,G,L,K,O,F 

a,b,c,d,e,f,g 

f,t,s,n,e,K,c 

B,F,d,e,t,m,A 

我想這些數據的形式存儲數據的過中間一個圖案。爲前:C,D,E,F

這裏是我的代碼:

static void Main(string[] args) 
{ 
    FileStream fs = new FileStream("studentSheet.csv", FileMode.Open); 
    StreamReader reader = new StreamReader(fs); 
    List<string> subline = new List<string>(); 
    string line = ""; 
    while ((line = reader.ReadLine()) != null) 
    { 
     string[] splitstring = line.Split(';'); 
     string ft = null; 
     int i =0; 
     while(i <(splitstring.Length - 3)+1) 
     { 
      ft = splitstring[i] + "," + splitstring[i+1] 
       + "," + splitstring[i+2] +","+ splitstring[i+3]; 
      subline.Add(ft); 
      i = i + 1; 
     } 

    } 
    foreach(string s in subline) 
     Console.WriteLine(s); 
    Console.ReadLine(); 
} 
+8

你忘了添加'c#-2.0'和'c#-5.0'標籤。 – 2013-03-22 13:20:50

+0

你爲什麼要分裂「;」代替 ','?它不是CSV嗎? – Thelonias 2013-03-22 13:33:00

回答

1

假設你確定與讀取所有到一個叫input大名單,而你不需要它是驚人的快,你可以只是這樣做:

List<string> output = Enumerable.Range(0, input.Length - 4) 
    .Select(i => String.Join(",", input.Skip(i).Take(4))) 
    .ToList(); 
相關問題