2017-03-20 104 views
-3

我想知道是否可以在C#中創建一些指向數組的指針數組。我想要解決分配一個非常大的對象時出現OutOfMemoryException的問題。 我知道我可以像C這樣做:Array of pointers to arrays。我可以用C#做​​到嗎,如果可以的話,怎麼做?C中數組指針的數組#

這是我的方法,在那裏我得到異常:

private async Task FindNumbersDivisibleBySomeNumber() 
{ 
    await Task.Run(() => 
    { 
     for (long i = 1; i < 10000000000; i++) 
     { 
      if (i % someNumber == 0) 
      { 
       numbers.Add(i); 
      } 
     } 
    }); 
} 

其中數字是多頭

+1

顯示你的代碼中,有可能是一個更好的解決方案,你還允許app/web.config中的大對象嗎? – Lloyd

+2

我猜相當於一個參差不齊的數組,但我認爲這不會解決你的內存問題。 – juharr

+2

數組是一種引用類型('class',而不是'struct'),所以我懷疑你是否想在上下文中使用* poniters *(它們是* unsafe *)。 –

回答

0

的列表,請嘗試以下操作:

 static void Main(string[] args) 
     { 
      int[] t1={0,1,2,3}; 
      int[] t2={4,5,6,7}; 
      int[] t3={8,9,10,11}; 
      int[] t4={12,13,14,15}; 
      int[][] tab={t1,t2,t3,t4}; 
      for(int i=0; i<4;i++) 
      { 
       Console.WriteLine(string.Join(",", tab[i])); 
      } 

     }