TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #57 111
🏗 آرایه‌های چندبعدی:
مستطیلی ([,]) در برابر دندانه‌دار ([][])

گاهی وقتا یه لیست ساده یا آرایه یک‌بعدی جواب کار ما رو نمیده. وقتی با داده‌های جدولی، ماتریس‌ها، یا هر ساختار شبکه‌ای سر و کار داریم، باید بریم سراغ آرایه‌های چندبعدی.

تو #C دو نوع اصلی داریم:
مستطیلی (Rectangular) و دندانه‌دار (Jagged). بیاید ببینیم فرقشون چیه و کی باید از کدوم استفاده کرد.
1️⃣آرایه‌های مستطیلی ([,]): یک شبکه منظم ▦
فکر کنید این نوع آرایه مثل یه جدول اکسل یا یه صفحه شطرنجه. یه شبکه کاملاً منظم که تعداد سطر و ستونش از اول مشخص و ثابته. تمام عناصر در یک بلوک حافظه یکپارچه قرار می‌گیرن.

نحوه تعریف: ابعاد مختلف رو با کاما (,) از هم جدا می‌کنیم.

پیمایش: برای گرفتن طول هر بعد، از متد GetLength(dimension) استفاده می‌کنیم.

// تعریف یک ماتریس ۳ در ۳
int[,] matrix = new int[3, 3];

// پیمایش و مقداردهی
for (int i = 0; i < matrix.GetLength(0); i++) // طول بعد اول (سطرها)
{
for (int j = 0; j < matrix.GetLength(1); j++) // طول بعد دوم (ستون‌ها)
{
matrix[i, j] = i * 3 + j;
}
}

// مقداردهی اولیه سریع
int[,] matrix2 =
{
{0, 1, 2},
{3, 4, 5},
{6, 7, 8}
};


2️⃣آرایه‌های دندانه‌دار ([][]):
آرایه‌ای از آرایه‌ها ⛓️
این یکی فرق داره. به جای یه شبکه منظم، شما یه آرایه دارید که هر خونه‌ش، خودش میتونه یه آرایه دیگه باشه! مثل یه قفسه‌ کتابه که هر طبقه‌ش می‌تونه تعداد متفاوتی کتاب جا بده.

نحوه تعریف: برای هر بعد، از یک جفت [] جداگانه استفاده می‌کنیم.

انعطاف‌پذیری: هر آرایه داخلی می‌تونه طول متفاوتی داشته باشه.

تله و نکته حیاتی: ⚠️
وقتی یه آرایه دندانه‌دار می‌سازید، فقط آرایه بیرونی ساخته میشه و تمام خونه‌های اون null هستن! شما باید خودتون هر آرایه داخلی رو به صورت جداگانه با new بسازید!

// تعریف یک آرایه بیرونی با ظرفیت ۳ (که هر ۳ خانه‌اش null است)
int[][] jaggedMatrix = new int[3][];

// حالا باید هر آرایه داخلی را جداگانه بسازیم
for (int i = 0; i < jaggedMatrix.Length; i++)
{
jaggedMatrix[i] = new int[i + 3]; // هر ردیف طولی متفاوت دارد

for (int j = 0; j < jaggedMatrix[i].Length; j++)
{
jaggedMatrix[i][j] = i + j;
}
}

🤔 حرف حساب و انتخاب شما
برای داده‌های جدولی و ثابت (مثل تصویر یا ماتریس) ⟵ آرایه مستطیلی ([,])

برای داده‌هایی که هر ردیفشون طول متفاوتی داره ⟵ آرایه دندانه‌دار ([][])

شما تو پروژه‌هاتون بیشتر با کدوم نوع آرایه چندبعدی سر و کار داشتید؟ یا سناریوی جالبی دارید که توش یکی از این دو نوع به وضوح برتری داشته؟

نظراتتون رو کامنت کنید! 👇
[@CSharpGeeksChat]

🔖 هشتگ‌ها :
#CSharp
#Array
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →