PDA

View Full Version : مشکل با ساخت آرایه 2 بعدی



NIMA_1981
یک شنبه 11 اردیبهشت 1390, 15:41 عصر
سلام

من میخوام یک ارایه دو یعدی درست کنم از این روش استفاده کردم اما مشکل داره یغنی وقتی میهوام مقدار ها رو بخونم یه جیز دیگه نمایش میده





List<List<long>> dist = new List<List<long>>();



<long> a = new List<long>();



for (int u = 0; u < 10; u++)

{

dist.Add(a);

}



foreach (var item in dist)

{

a.Add(0);



if (item != a)

item.Add(0);

}

dist[1][2] = 10;

dist[1][4] = 5;

dist[2][3] = 1;

dist[2][4] = 3;

dist[3][5] = 6;

dist[4][2] = 2;

dist[4][3] = 9;

dist[4][5] = 2;

dist[5][1] = 7;

dist[5][3] = 4;



میشه راهنمایی کنید
مثلا میخوام dist[4][5] رو بخونم درست نشون نمی ده

با تشکر

Reza_Yarahmadi
یک شنبه 11 اردیبهشت 1390, 18:22 عصر
دوست عزیز شئ a رو 10 بار به لیست dist اضافه میکنید. هر تغییری روی هر یک از این 10 لیست اعمال کنید روی همه لیستهای دیگه اعمال میشه (پیشنهاد میکنم برای درک بهتر این موضوع در مورد شئ گرایی و اشاره گرها در #C مطالعه کنید.)
برای حلش هم میتونید بصورت زیر عمل کنید
List<List<long>> dist = new List<List<long>>();

for (int u = 0; u < 10; u++)
dist.Add(new List<long>());

foreach (var item in dist)
for (int i = 0; i < 10; i++)
item.Add(0);

dist[1][2] = 10;
dist[1][4] = 5;
dist[2][3] = 1;
dist[2][4] = 3;
dist[3][5] = 6;
dist[4][2] = 2;
dist[4][3] = 9;
dist[4][5] = 2;
dist[5][1] = 7;
dist[5][3] = 4;

Felony
یک شنبه 11 اردیبهشت 1390, 20:24 عصر
کد زیر یک نمونه آرایه 2 بعدی هست ، حالا با چیش مشکل دارید ؟
// Define array
int[ , ] numbers = new int[5, 5];
// Fill array
for (int i = 0; i <= 4; i++)
for (int j = 0; j <= 4; j++)
numbers[i, j] = i * j;
// Show array
for (int i = 0; i <= 4; i++)
for (int j = 0; j <= 4; j++)
MessageBox.Show(numbers[i, j].ToString());

NIMA_1981
یک شنبه 11 اردیبهشت 1390, 22:41 عصر
اقا از همین روش دوم مشکلم حل شد اما یک الان نمیتونم این رو کامل پاک کنم


List<List<long>> dist = new List<List<long>>();
من اینو تعریف کردم جطوری متونم پاک کنم یعنی در اصل این شماره key رو پاک کنم من آرایه رو پاک میکنم اما key پاک نمیشه من توی برنامه اینجوری استفاده کردم
همه چی درسته اما وقتی می خوام همه آرایه ها رو پاک کنم شماره این key از شماره قبلی شروع میشه




foreach


(var item in points)

{

MessageBox.Show(item.Key.ToString());
}


با تشکر