TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2382 1.57K
پیاده‌سازی Linked List در سی‌شارپ

#csharp_for_beginners

در این مقاله، ساختار دادهٔ LinkedList در زبان سی‌شارپ معرفی شده است. این ساختار یک لیست پیوندی دوطرفه (Doubly Linked List) است که امکان درج و حذف سریع عناصر را در هر نقطه از لیست فراهم می‌کند. برخلاف آرایه‌ها، عناصر در حافظه به‌صورت پشت‌سرهم ذخیره نمی‌شوند و هر عنصر در قالب یک گره (Node) نگهداری می‌شود.

ساختار LinkedList
هر گره در LinkedList<T> شامل سه بخش است:

مقدار داده (Value)
اشاره‌گر به گره قبلی (Previous)
اشاره‌گر به گره بعدی (Next)

به همین دلیل می‌توان در هر دو جهت لیست حرکت کرد.

ایجاد یک LinkedList

برای استفاده از این ساختار ابتدا باید فضای نام زیر را اضافه کنیم:

using System.Collections.Generic;



سپس لیست را ایجاد می‌کنیم:

LinkedList<int> list = new LinkedList<int>();


افزودن عناصر:


مهم‌ترین متدهای افزودن عنصر عبارت‌اند از:

افزودن در ابتدای لیست: ()AddFirst
افزودن در انتهای لیست: ()AddLast
افزودن قبل از یک گره مشخص: ()AddBefore
افزودن بعد از یک گره مشخص: ()AddAfter


نمونه کد:

LinkedList<int> list = new LinkedList<int>();

list.AddFirst(20);
list.AddLast(30);
list.AddLast(40);

foreach (int item in list)
{
Console.WriteLine(item);
}



خروجی:

20
30
40

برای حذف عناصر نیز متدهای مختلفی وجود دارد:

حذف اولین رخداد یک مقدار: Remove(T value)
حذف اولین گره: RemoveFirst()
حذف آخرین گره: RemoveLast()
حذف یک گره مشخص: Remove(LinkedListNode<T>)
حذف تمام عناصر لیست: Clear()

جستجوی عناصر
متد Contains() بررسی می‌کند که آیا یک مقدار در لیست وجود دارد یا خیر:

LinkedList<int> list = new LinkedList<int>();

list.AddLast(10);
list.AddLast(20);
list.AddLast(30);

Console.WriteLine(list.Contains(20));
Console.WriteLine(list.Contains(100));


خروجی:

True
False

🔗 مطلب کامل را در این لینک می‌توانید مطالعه کنید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

کانال تلگرام:
@SoftwarePhilosophy

______
GeeksforGeeks LinkedList in C# - GeeksforGeeks Your All-in-One Learning Portal: GeeksforGeeks is a comprehensive educational platform that empowers learners across domains-spanning computer science and programming, school education, upskilling, commerce, software tools, competitive exams, and more.
  • 🔥 4
  • ❤ 2
  • 👎 1
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
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 →