IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

Bağlantılı liste, elemanlar olarak da adlandırılabilecek bir dizi düğümden oluşan doğrusal bir veri yapısıdır. Elemanların/düğümlerin ardışık bellek alanlarında depolandığı dizilerden farklı olarak, bağlı listeler dinamik bellek tahsisini kullanır, elemanların/düğümlerin bellekte dağılmasına izin verir.

En basit formunda, 'bağlı listeler' doğrusal olarak bir araya bağlı düğümlerden oluşur. Her düğüm iki ana parça içerir:

  1. Veri: Düğümde saklanan yük. Bu, uygulamaya bağlı olarak, tamsayılar, dizeler, nesneler vb. gibi herhangi bir veri türü olabilir.
  2. Sonraki İşaretçi: Dizideki bir sonraki düğüme referans (veya işaretçi). Bu işaretçi, bağlı listedeki bir sonraki düğümün bellekteki konumunu ileriye doğru gösterir.

Bağlı bir listedeki son düğüm genellikle listenin sonunu belirtmek için bir null referansı gösterir.

Bu makalede, C# dilindeki Bağlı listeye detaylı bir şekilde bakacağız ve ayrıca IronPDF kütüphanesini, Iron Software ürününü keşfedeceğiz.

Bağlı Liste Türleri

1. Tek Yönlü Bağlı Liste

Tek yönlü bağlı listede tek bir referansı olan, tipik olarak dizideki bir sonraki düğüme işaret eden bir düğüm bulunur. Listeyi geçmek, baştan (ilk düğüm) sonuna (son düğüm) genellikle tek bir yönde hareket etmekle sınırlıdır.

2. Çift Yönlü Bağlı Liste

Çift yönlü bir bağlı listede her düğüm iki referans içerir: biri bir sonraki düğüme, biri de dizideki önceki düğüme işaret eder. Bu iki yönlü bağlantı, hem ileriye hem de geriye doğru geçiş yapmayı mümkün kılar.

3. Dairesel Bağlı Liste

Dairesel bir bağlı listede son düğüm, ilk düğüme yeniden yönlendirerek dairesel bir yapı oluşturur. Bu tür bir bağlı liste tek yönlü veya çift yönlü düğümler kullanılarak uygulanabilir.

Bağlı Listeler Üzerinde Temel İşlemler

  1. Ekleme: Belirli bir konumda, örneğin başlangıç, son, ya da ortada yeni bir düğüm eklemek.
  2. Silme: Listede belirtilen bir nesne düğümünü kaldırmak ve komşu düğümlerin işaretçilerini buna göre ayarlamak.
  3. Geçiş: Her düğümün verilerine erişmek veya bunları manipüle etmek için liste boyunca gezinmek.
  4. Arama: Belirtilen veri değerine göre listede belirli bir düğümü bulmak.

Linked List in C#

C# içinde, .NET 8.0 sürümünü görüntülemek için LinkedList sınıfını System.Collections.Generic ad alanından kullanarak bir bağlı listeyi uygulayabilirsiniz. İşte tüm temel işlemler için bir örnek:

using System;
using System.Collections.Generic;

namespace CsharpSamples
{
    public class Program
    {
        public static void Main()
        {
            // Create a new linked list of integers
            LinkedList<int> linkedList = new LinkedList<int>();
            
            // Add elements to the linked list
            linkedList.AddLast(10);
            linkedList.AddLast(20);
            linkedList.AddLast(30);
            linkedList.AddLast(40);
            
            // Traverse and print the elements of the linked list
            Console.WriteLine("Traverse Linked List elements:");
            foreach (var item in linkedList)
            {
                Console.WriteLine(item);
            }
            
            // Display number of linked list elements
            Console.WriteLine($"Number of Linked List elements: {linkedList.Count}");
            
            // Find/Search for an element in the linked list
            Console.WriteLine("\nFind/Search Element Linked List elements: 30");
            var foundNode = linkedList.Find(30);
            
            if (foundNode != null)
            {
                Console.WriteLine(
                    $"Found Value: {foundNode.Value}, " +
                    $"Next Element: {(foundNode.Next != null ? foundNode.Next.Value.ToString() : "null")}, " +
                    $"Previous Element: {(foundNode.Previous != null ? foundNode.Previous.Value.ToString() : "null")}"
                );
            }
            
            // Insert an element at a specified node
            LinkedListNode<int> current = linkedList.Find(20);
            if (current != null)
            {
                linkedList.AddAfter(current, 25);
            }
            
            Console.WriteLine($"\nNumber of Linked List elements: {linkedList.Count}");
            Console.WriteLine("\nLinked List elements after insertion:");
            foreach (var item in linkedList)
            {
                Console.WriteLine(item);
            }
            
            // Remove an existing node from the linked list
            linkedList.Remove(30);
            
            Console.WriteLine("\nLinked List elements after removal:");
            foreach (var item in linkedList)
            {
                Console.WriteLine(item);
            }
            
            Console.WriteLine($"\nNumber of Linked List elements: {linkedList.Count}");
        }
    }
}

Kod Açıklaması

  1. new LinkedList<int>() kullanarak tamsayı türünde yeni bir bağlı liste oluşturun.
  2. Belirtilen değer nesnelerini bağlı listeye ekleyin.
  3. foreach döngüsünü kullanarak bağlı listenin elemanlarını dolaşın ve yazdırın.
  4. Bağlı listede bir elemanı bulma/arama.
  5. Find ve AddAfter yöntemlerini kullanarak belirtilen bir düğümde bir eleman ekleyin.
  6. Remove yöntemini kullanarak bağlı listeden mevcut bir düğümü kaldırın.

Çıktı

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Bağlı Liste Çıktısı

IronPDF Tanıtımı

IronPDF hakkında daha fazla bilgi keşfedin Iron Software tarafından geliştirilen ve bakım yapılan güçlü bir C# PDF kütüphanesidir. .NET projeleri içinde PDF belgeleri oluşturma, düzenleme ve içerik çıkarma için kapsamlı özellikler sunar.

IronPDF Hakkında Temel Noktalar

HTML'den PDF'ye Dönüşüm

IronPDF, HTML içeriğini PDF formatına dönüştürmenizi sağlar. URL'leri ve HTML dizelerini kolayca PDF'lere dönüştürebilirsiniz.

Zengin API

Kütüphane, geliştiricilerin doğrudan HTML'den profesyonel kalitede PDF'ler oluşturmalarını sağlayan kullanıcı dostu bir API sunar. Faturalar, raporlar veya diğer belgeleri oluşturmanız gerekip gerekmediğine bakılmaksızın, IronPDF süreci basitleştirir.

Çapraz Platform Desteği

IronPDF, .NET Core, .NET Standard ve .NET Framework dahil farklı .NET ortamlarıyla uyumludur. Windows, Linux ve macOS platformlarında çalışır.

Çok Yönlülük

IronPDF, web uygulamaları (Blazor ve WebForms), masaüstü uygulamaları (WPF ve MAUI), ve konsol uygulamaları gibi farklı proje türlerini destekler.

İçerik Kaynakları

HTML dosyaları, Blazor Sunucusu (VuLoad), CSHTML (MVC ve Blazor Server), ASPX (WebForms) ve XAML (MAUI) dahil çeşitli içerik kaynaklarından PDF oluşturabilirsiniz.

Ekstra Özellikler

  1. PDF'lere başlıklar ve altbilgiler ekleyin.
  2. PDF sayfalarını birleştirin, bölün, ekleyin, kopyalayın ve silin.
  3. Şifreler, izinler ve dijital imzalar ayarlayın.
  4. Çoklu işleme ve asenkron destekle performansı optimize edin.

Uyumluluk

IronPDF, 1.2'den 1.7'ye kadar sürümler, PDF/UA ve PDF/A dahil olmak üzere PDF standartlarına uygun davranır. UTF-8 karakter kodlama, temel URL'ler ve varlık kodlamasını da destekler.

LinkedList Kullanarak PDF Belgesi Oluştur

Şimdi IronPDF kullanarak bir PDF belgesi oluşturalım ve aynı zamanda LinkedList dizelerinin kullanımını gösterelim.

Başlangıç olarak Visual Studio'yu açarak ve aşağıdaki gibi proje şablonlarından bir konsol uygulaması seçerek başlayın.

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Yeni Proje

Bir proje adı ve konumu sağlayın.

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Proje Yapılandırması

Gerekli .NET sürümünü seçin.

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - Hedef Çerçeve

Yukarıdaki gibi Visual Studio Paket yöneticisinden IronPDF'yi kurun.

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - IronPDF Yükleyin

Ya da aşağıdaki komut satırı kullanılarak kurulur.

dotnet add package IronPdf --version 2024.4.2

Aşağıdaki kodu ekleyin.

using System;
using System.Collections.Generic;
using IronPdf;

namespace CsharpSamples
{
    public class Program
    {
        public static void Main()
        {
            var content = "<h1>Demonstrate IronPDF with C# LinkedList</h1>";
            content += "<h2>Create a new linked list of strings</h2>";
            content += "<p>Create a new linked list of strings with new LinkedList&lt;string&gt;()</p>";
            
            // Create a new linked list of strings
            LinkedList<string> linkedList = new LinkedList<string>();
            
            // Add elements to the linked list
            content += "<p>Add Apple to linkedList</p>";
            linkedList.AddLast("Apple");
            
            content += "<p>Add Banana to linkedList</p>";
            linkedList.AddLast("Banana");
            
            content += "<p>Add Orange to linkedList</p>";
            linkedList.AddLast("Orange");
            
            content += "<h2>Print the elements of the linked list</h2>";
            Console.WriteLine("Linked List elements:");
            
            foreach (var item in linkedList)
            {
                content += $"<p>{item}</p>";
                Console.WriteLine(item);
            }
            
            content += "<h2>Insert an element at a specific position</h2>";
            LinkedListNode<string> node = linkedList.Find("Banana");
            if (node != null)
            {
                linkedList.AddAfter(node, "Mango");
                content += "<p>Find Banana and insert Mango After</p>";
            }
            
            Console.WriteLine("\nLinked List elements after insertion:");
            content += "<h2>Linked List elements after insertion:</h2>";
            
            foreach (var item in linkedList)
            {
                content += $"<p>{item}</p>";
                Console.WriteLine(item);
            }
            
            content += "<h2>Remove an element from the linked list</h2>";
            linkedList.Remove("Orange");
            content += "<p>Remove Orange from linked list</p>";
            
            Console.WriteLine("\nLinked List elements after removal:");
            content += "<h2>Linked List elements after removal:</h2>";
            
            foreach (var item in linkedList)
            {
                content += $"<p>{item}</p>";
                Console.WriteLine(item);
            }
            
            // Create a PDF renderer
            var renderer = new ChromePdfRenderer();
            
            // Create a PDF from HTML string
            var pdf = renderer.RenderHtmlAsPdf(content);
            
            // Save to a file
            pdf.SaveAs("AwesomeIronOutput.pdf");
        }
    }
}

Kod Açıklaması

  1. Öncelikle, içeriği bir içerik dize nesnesi kullanarak PDF için oluşturma ile başlıyoruz. İçerik bir HTML dizesi olarak oluşturulur.
  2. new LinkedList<string>() ile yeni bir dizeler bağlı listesi oluşturun.
  3. Bağlı listeye elemanlar ekleyin ve ayrıca PDF içerik dizesine bilgi ekleyin.
  4. Bağlı liste elemanlarını yazdırın ve PDF içeriğine ekleyin.
  5. AddAfter yöntemini kullanarak belirli bir konumda bir eleman ekleyin; içeriği güncelleyin ve son listeyi yazdırın.
  6. Remove yöntemini kullanarak bağlı listeden bir eleman kaldırın, içeriği güncelleyin ve sonuç listesi yazdırın.
  7. Son olarak, oluşturulan HTML içerik dizgisini ChromePdfRenderer, RenderHtmlAsPdf ve SaveAs yöntemlerini kullanarak bir PDF belgesine kaydedin.

Çıktı

C# Bağlı Liste (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - IronPDF ile LinkedList Çıkışı

Çıktıda bir filigran vardır, geçerli bir lisans kullanarak IronPDF lisans sayfasından kaldırılabilir.

IronPDF Lisansı

IronPDF kütüphanesi çalışması için lisans gerektirir, ve ürün lisans sayfasından elde edilebilir.

Aşağıda appSettings.json dosyasına anahtarı yapıştırın.

{
  "IronPdf.License.LicenseKey": "The Key Goes Here"
}
JSON

Sonuç

C# LinkedList, elemanların koleksiyonlarını yönetmek için çok yönlü bir veri yapısı sağlar, varsayılan karma fonksiyonuna benzer şekilde dinamik yeniden boyutlandırmayı desteklerken etkin ekleme ve silme işlemleri sunar. Bağlı listeler, yığınlar, kuyruklar, sembol tabloları ve bellek yönetim sistemleri gibi çeşitli uygulamalarda ve algoritmalarda yaygın olarak kullanılır. Bağlı listelerin özelliklerini ve işlemlerini anlamak, verimli ve ölçeklenebilir yazılım çözümleri oluşturmak için gereklidir.

Özetlemek gerekirse, bağlı listeler dinamik veri yapıları ve sık ekleme/kaldırma gerektiren senaryolarda mükemmel olsalar da, sık rastgele erişim gerektiren veya belleği sınırlı ortamlardaki uygulamalar için en iyi seçim olmayabilirler. Verilerin belirli gereksinimlerini ve özelliklerini dikkatlice değerlendirerek, elinizdeki görev için en uygun veri yapısının seçilmesini yönlendirebilir.

Iron Software'den IronPDF kütüphanesi, geliştiricilerin PDF belgelerini zahmetsizce oluşturmalarını ve düzenlemelerini sağlar, modern uygulamaları geliştirmek için ileri becerileri mümkün kılar.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez