2014-06-10 58 views
-1

我想製作一個動態數組的動態數組,我該怎麼做? 我嘗試了使用AddRange()方法的列表的列表。 我也試過遍歷數組。製作一個多維的鋸齒狀陣列

也許它顯示我想要做什麼更有意義。我無法得到它的工作:

String[] lines = System.IO.File.ReadAllLines(fileName); 
String[] linesArr; 
String[][] MultiArr; 
int i = 0; 

foreach (string line in lines) 
{ 
    if (line.Contains("EFIX")) 
    { 
     linesArr = line.Split(delimiterChars); 
     for (int x = 0; x < linesArr.Length; x++) 
     { 
      MultiArr[i][x] = linesArr[x]; 
     } 
    Console.WriteLine(fixationsData[i]); 
    i++; 
    } 
} 
+1

有什麼錯用列表的列表? –

+2

「你出錯了」在嘗試幫助你的人真的很有用。 – hometoast

+0

看起來你沒有指派任何東西'MultiArr [I]',所以它仍然是'null',所以'MultiArr [I] [X] = ...'其實'空[X] = ...' 。哦,'MultiArr'本身還是'null',除非你指定爲「屏幕」的地方。 –

回答

1

LINQ使這個相當微不足道。

string[][] data = File.ReadLines(filename) 
    .Where(line => line.Contains("EFIX")) 
    .Select(line => line.Split(delimiterChars)) 
    .ToArray();//omit this last call to allow the data to be streamed, 
    //greatly removing the memory footprint of the application at no real 
    //additional cost, assuming you have no compelling reason to eagerly 
    //load the whole file into memory. 

foreach(var line in data) 
    Console.WriteLine(line); 
+0

似乎除了輸出線工作,因爲我得到System.String []但我需要裏面的字符串。我添加了另一個foreach來適應這個:-)謝謝! – user3219849

0
String[] lines = System.IO.File.ReadAllLines(fileName); 
String[] linesArr; 
List<String[]> MultiArr = new List<String[]>(); 


foreach (string line in lines) 
{ 
    if (line.Contains("EFIX")) 
    { 
    linesArr = line.Split(delimiterChars); 
    MultiArr.Add(linesArr); 
    Console.WriteLine(fixationsData[i]); 
    } 
} 

這是字符串數組列表。這是你正在尋找的。

1

使用字符串列表應該工作正常。這是我寫的。

var lines = System.IO.File.ReadAllLines(fileName); 
var multiArr = new List<List<string>>(); 
var i = 0; 

foreach (var line in lines.Where(line => line.Contains("EFIX"))) 
{ 
    multiArr.Add(line.Split(delimiterChars).ToList()); 
    Console.WriteLine(fixationsData[i]); 
    i++; 
} 
+0

這也適用,所以謝謝! – user3219849