2012-05-28 4 views
0

Похоже, мне не удалось понять концепцию ссылочных типов и списков типов значений.Еще одно неправильное использование ссылочного/значения типа

Здесь я хочу заполнить массив из 30000 uint16 с 125 значениями за раз.

По окончании я хочу добавить его в список и начать заполнять еще один кусок 30000 значений. Тем не менее, я храню ссылки только на один массив. Вот тестовый код:

UInt16[] ND = new UInt16[30000]; 
OMD.Clear(); 
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i; 
OMD.Add(ND); 
for (int i = 0; i < 30000; i++) ND[i] = 13; 
OMD.Add(ND); 

Во втором цикле первый элемент массива OMD теряет свои ценности и изменения 13.

+0

Какой тип * OMD *? – McGarnagle

+0

Список OMD = новый Список (); – JustGreg

+0

'Список OMG = SRSLY?;' –

ответ

1

Вы можете очистить ссылки и создать новую после каждого цикла.

UInt16[] ND = new UInt16[30000]; 
OMD.Clear(); 
for (int i = 0; i < 30000; i++) ND[i] = (ushort)i; 
OMD.Add(ND); 

ND = new UInt16[30000]; 
for (int i = 0; i < 30000; i++) ND[i] = 13; 
OMD.Add(ND); 
+0

Большое спасибо! – JustGreg