Przejdź do treści stopki
POMOC .NET

Lista połączona w języku C# (jak działa dla programistów)

Lista powiazana to liniowa struktura danych skladajaca sie z serii wezlow, nazywanych tez elementami. W przeciwienstwie do tablic, gdzie elementy/wezły sa przechowywane w ciaglej pamięci, listy powiazane wykorzystuja dynamiczna alokacje pamięci, pozwalając na rozrzucenie elementow/wezlow w całej pamięci.

W najprostszej formie listy powiazane skladaja sie z wezlow polaczonych liniowo. Kazdy wezel zawiera dwie główne części:

  1. Dane: Ladunek przechowywany w wezle. Mogą to być dowolne typy danych w zależności od implementacji, takie jak liczby całkowite, ciagi znakow, obiekty itp.
  2. Nastepny wskaźnik: Referencja (lub wskaźnik) do nastepnego wezla w sekwencji. Ten wskaźnik wskazuje lokalizacje pamięci nastepnego wezla w liscie powiazanej.

Ostatni wezel w liscie powiazanej zwykle wskazuje na pusta referencje, sygnalizujac koniec listy.

W tym artykułe przyjrzymy sie szczegółowo liscie powiazanej w C# oraz zbadamy biblioteke IronPDF, narzędzie do generowania PDF od Iron Software.

Rodzaje list powiazanych

1. Lista jednokierunkowa

Lista jednokierunkowa ma wezel z tylko jedną referencją, typowo wskazujacą na następny wezel w sekwencji. Poruszanie sie po liscie jest ograniczone do przemieszczania sie w jednym kierunku, zazwyczaj od glowy (wezel poczatkowy) do ogona (wezel koncowy).

2. Lista dwukierunkowa

W liscie dwukierunkowej kazdy wezel zawiera dwie referencje: jedna wskazujaca na następny wezel, a druga na poprzedni wezel w sekwencji. To dwukierunkowe łącze umożliwia przeszukiwanie w obu kierunkach do przodu i do tylu.

3. Lista cykliczna

W liscie cyklicznej ostatni wezel wskazuje z powrotem na pierwszy wezel, tworząc strukture kolowa. Ten typ listy powiazanej może być zaimplementowany przy użyciu jednokierunkowych lub dwukierunkowych wezlow.

Podstawowe operacje na listach powiazanych

  1. Wstawianie: Dodawanie nowego wezla do listy na konkretnej pozycji, takiej jak początek, koniec lub srodek.
  2. Usuwanie: Usuwanie okreslonego wezla z listy i odpowiednie dostosowanie wskaźników sasiadujacych wezlow.
  3. Przejscie: Iteracja przez liste w celu uzyskania dostepu do danych kazdego wezla lub manipulacji nimi.
  4. Wyszukiwanie: Znajdowanie okreslonego wezla w liscie na podstawie jego wartosci danych.

Linked List in C

W C#, można zaimplementować listę powiązaną, używając klasy LinkedList z przestrzeni nazw System.Collections.Generic. Oto przykład wszystkich podstawowych operacji:

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}");
        }
    }
}
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}");
        }
    }
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic

Namespace CsharpSamples
	Public Class Program
		Public Shared Sub Main()
			' Create a new linked list of integers
			Dim linkedList As New LinkedList(Of Integer)()

			' 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:")
			For Each item In linkedList
				Console.WriteLine(item)
			Next 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(vbLf & "Find/Search Element Linked List elements: 30")
			Dim foundNode = linkedList.Find(30)

			If foundNode IsNot Nothing Then
				Console.WriteLine($"Found Value: {foundNode.Value}, " & $"Next Element: {(If(foundNode.Next IsNot Nothing, foundNode.Next.Value.ToString(), "null"))}, " & $"Previous Element: {(If(foundNode.Previous IsNot Nothing, foundNode.Previous.Value.ToString(), "null"))}")
			End If

			' Insert an element at a specified node
			Dim current As LinkedListNode(Of Integer) = linkedList.Find(20)
			If current IsNot Nothing Then
				linkedList.AddAfter(current, 25)
			End If

			Console.WriteLine($vbLf & "Number of Linked List elements: {linkedList.Count}")
			Console.WriteLine(vbLf & "Linked List elements after insertion:")
			For Each item In linkedList
				Console.WriteLine(item)
			Next item

			' Remove an existing node from the linked list
			linkedList.Remove(30)

			Console.WriteLine(vbLf & "Linked List elements after removal:")
			For Each item In linkedList
				Console.WriteLine(item)
			Next item

			Console.WriteLine($vbLf & "Number of Linked List elements: {linkedList.Count}")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  1. Utwórz nową listę powiązaną z liczbami całkowitymi za pomocą new LinkedList<int>().
  2. Dodaj okreslone obiekty wartosci do listy powiazanej.
  3. Przemierz i wydrukuj elementy listy powiązanej za pomocą pętli foreach.
  4. Znajdz/wyszukaj element w liscie powiazanej.
  5. Wstaw element w określonym węźle, używając metod Find i AddAfter.
  6. Usuń istniejący węzeł z listy powiązanej, używając metody Remove.

Wynik

Lista powiązana w C# (Jak działa dla programistów): Rysunek 1 - Wynik listy powiązanej

Przedstawiamy IronPDF

Dowiedz sie więcej o IronPDF to potezna biblioteka PDF C# opracowana i utrzymywana przez Iron Software. Zapewnia wszechstronny zestaw funkcji do tworzenia, edytowania i wydobywania zawartości z dokumentów PDF w projektach .NET.

Kluczowe punkty dotyczące IronPDF

Konwersja HTML do PDF

IronPDF pozwala na konwersje zawartości HTML do formatu PDF. Możesz łatwo renderować strony HTML, URL i ciagi HTML do plików PDF.

Bogaty interfejs API

Biblioteka oferuje przyjazny dla użytkownika interfejs API, ktory umożliwia deweloperom generowanie profesjonalnej jakosci plików PDF bezpośrednio z HTML. Czy potrzebujesz stworzyć faktury, raporty czy inne dokumenty, IronPDF upraszcza ten proces.

Obsługa wielu platform

IronPDF jest kompatybilny z rozmaitymi środowiskami .NET, w tym .NET Core, .NET Standard i .NET Framework. Działa na platformach Windows, Linux i macOS.

Wszechstronnosc

IronPDF obsługuje różne typy projektow, takie jak aplikacje webowe (Blazor i WebForms), aplikacje desktopowe (WPF i MAUI) oraz aplikacje konsolowe.

Zrodla zawartości

Możesz generować pliki PDF z różnych źródeł zawartości, w tym plików HTML, widoków Razor (serwer Blazor), CSHTML (MVC i Razor), ASPX (WebForms) i XAML (MAUI).

Dodatkowe funkcje

  1. Dodaj nagłówki i stopki do plików PDF.
  2. Scalic, podzielić, dodac, skopiowac i usunac strony PDF.
  3. Ustawic hasla, uprawnienia i podpisy cyfrowe.
  4. Optymalizowac wydajność za pomoca wielowątkowośći i wsparcia asynchronicznego.

Kompatybilność

IronPDF zgodne jest z normami PDF, w tym wersjami od 1.2 do 1.7, PDF/UA i PDF/A. Obslugiwane jest także kodowanie znakow UTF-8, adresy bazowe URL i kodowanie zasobów.

Generowanie dokumentu PDF za pomocą LinkedList

Teraz utwórzmy dokument PDF przy użyciu IronPDF i zademonstrujmy również wykorzystanie łańcuchów LinkedList.

Na początek, otworz Visual Studio i stworz aplikacje konsolowa, wybierajac z szablonow projektow, jak pokazano poniżej.

Lista powiązana w C# (Jak działa dla programistów): Rysunek 2 - Nowy projekt

Podaj nazwe projektu i lokalizacje.

Lista powiązana w C# (Jak działa dla programistów): Rysunek 3 - Konfiguracja projektu

Wybierz wymaganą wersję .NET.

Lista powiązana w C# (Jak działa dla programistów): Rysunek 4 - Docelowa platforma

Zainstaluj IronPDF z menadzera pakietow Visual Studio, jak poniżej.

Lista powiązana w C# (Jak działa dla programistów): Rysunek 5 - Instalacja IronPDF

Lub może być zainstalowany przy użyciu poniższej linii polecen.

dotnet add package IronPdf --version 2024.4.2

Dodaj poniższy kod.

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");
        }
    }
}
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");
        }
    }
}
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports IronPdf

Namespace CsharpSamples
	Public Class Program
		Public Shared Sub Main()
			Dim 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
			Dim linkedList As New LinkedList(Of 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:")

			For Each item In linkedList
				content &= $"<p>{item}</p>"
				Console.WriteLine(item)
			Next item

			content &= "<h2>Insert an element at a specific position</h2>"
			Dim node As LinkedListNode(Of String) = linkedList.Find("Banana")
			If node IsNot Nothing Then
				linkedList.AddAfter(node, "Mango")
				content &= "<p>Find Banana and insert Mango After</p>"
			End If

			Console.WriteLine(vbLf & "Linked List elements after insertion:")
			content &= "<h2>Linked List elements after insertion:</h2>"

			For Each item In linkedList
				content &= $"<p>{item}</p>"
				Console.WriteLine(item)
			Next item

			content &= "<h2>Remove an element from the linked list</h2>"
			linkedList.Remove("Orange")
			content &= "<p>Remove Orange from linked list</p>"

			Console.WriteLine(vbLf & "Linked List elements after removal:")
			content &= "<h2>Linked List elements after removal:</h2>"

			For Each item In linkedList
				content &= $"<p>{item}</p>"
				Console.WriteLine(item)
			Next item

			' Create a PDF renderer
			Dim renderer = New ChromePdfRenderer()

			' Create a PDF from HTML string
			Dim pdf = renderer.RenderHtmlAsPdf(content)

			' Save to a file
			pdf.SaveAs("AwesomeIronOutput.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  1. Na początku tworzymy zawartość dla PDF, korzystając z obiektu ciągu zawartości. Zawartosc jest generowana jako ciag HTML.
  2. Utwórz nową listę powiązaną łańcuchów znaków za pomocą new LinkedList<string>().
  3. Dodaj elementy do listy powiazanej i dodatkowo dolacz informacje do ciągu zawartości PDF.
  4. Wydrukuj elementy listy powiazanej i dolacz do zawartości PDF.
  5. Wstaw element na określonej pozycji za pomocą metody AddAfter. zaktualizuj zawartość i wydrukuj wynikowa liste.
  6. Usuń element z listy powiązanej, używając metody Remove, zaktualizuj zawartość i wydrukuj wynikową listę.
  7. Na koniec zapisz wygenerowany łańcuch zawartości HTML do dokumentu PDF za pomocą metod ChromePdfRenderer, RenderHtmlAsPdf i SaveAs.

Wynik

Lista powiązana w C# (Jak działa dla programistów): Rysunek 6 - IronPDF z `LinkedList` Wynik

Wyjscie ma znak wodny, ktory można usunac, korzystając z ważnej licencji z strony licencji IronPDF.

Licencja IronPDF

biblioteka IronPDF wymaga licencji do uruchomienia, która można uzyskać na stronie licencjonowania produktu.

Wklej klucz w pliku appSettings.json poniżej.

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

Wnioski

C# LinkedList dostarcza wszechstronną strukturę danych do zarządzania kolekcjami elementów, oferującą efektywne wstawienia i usunięcia, jednocześnie dostosowując się do dynamicznego zmieniania rozmiaru, podobnie jak domyślna funkcja haszująca. Listy powiazane sa powszechnie używane w różnych aplikacjach i algorytmach, takich jak implementacja stosow, kolejek, tabel symboli i systemów zarządzania pamięcią. Zrozumienie cech i operacji list powiazanych jest niezbędne do budowy efektywnych i skalowalnych rozwiazan programowych.

Podsumowujac, podczas gdy listy powiazane świetnie sprawdzają sie w okreslonych scenariuszach, takich jak dynamiczne struktury danych i czeste wstawiania/usuwania, mogą nie być najlepszym wyborem dla aplikacji wymagajacych czestego przypadkowego dostepu lub radzenia sobie z środowiskami o ograniczonej pamięci. Dokladne rozwazenie specyficznych wymagań i charakterystyk danych pomoże w wyborze najbardziej odpowiedniej struktury danych dla konkretnego zadania.

Biblioteka IronPDF firmy Iron Software pozwala programistom na łatwe tworzenie i edycję dokumentów PDF, umożliwiając wykorzystanie zaawansowanych umiejętności do tworzenia nowoczesnych aplikacji.

Często Zadawane Pytania

Czym jest lista połączona w języku C#?

Lista połączona w języku C# to liniowa struktura danych złożona z węzłów, z których każdy zawiera dane i odwołanie do następnego węzła. Struktura ta, w przeciwieństwie do tablic, pozwala na dynamiczną alokację pamięci, umożliwiając przechowywanie elementów w nieprzylegających lokalizacjach pamięci.

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Pozwala ona również na konwersję plików HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jakie są rodzaje list połączonych w języku C#?

W języku C# głównymi typami list połączonych są listy połączone pojedynczo, listy połączone podwójnie oraz listy połączone cyklicznie. Listy połączone pojedynczo zawierają węzły z pojedynczym odwołaniem do następnego węzła, listy połączone podwójnie zawierają odwołania zarówno do następnego, jak i poprzedniego węzła, a listy połączone cyklicznie mają ostatni węzeł odwołujący się z powrotem do pierwszego węzła.

Jakie podstawowe operacje można wykonywać na listach połączonych?

Listy połączone obsługują operacje takie jak wstawianie (dodawanie nowego węzła), usuwanie (usuwanie istniejącego węzła), przeglądanie (iteracja przez listę) oraz wyszukiwanie (znajdowanie węzła na podstawie jego danych).

Jak zaimplementować listę połączoną w języku C#?

Listę połączoną można zaimplementować w języku C# przy użyciu klasy LinkedList z przestrzeni nazw System.Collections.Generic, która udostępnia metody dodawania, usuwania i manipulowania węzłami na liście.

Jakie funkcje oferuje biblioteka do generowania plików PDF?

Biblioteka do generowania plików PDF, taka jak IronPDF, oferuje konwersję HTML do PDF, wyodrębnianie tekstu, łączenie i dzielenie dokumentów oraz ustawianie uprawnień do dokumentów, a wszystko to w różnych środowiskach .NET.

W jaki sposób listy połączone mogą być wykorzystywane przy generowaniu plików PDF?

Listy połączone mogą dynamicznie przechowywać i organizować treści, które następnie można iterować i konwertować na dokument PDF przy użyciu biblioteki takiej jak IronPDF, co ułatwia manipulowanie treścią i generowanie wyników.

Jakie są zalety stosowania list połączonych w tworzeniu oprogramowania?

Listy połączone umożliwiają wydajne wstawianie i usuwanie elementów oraz dynamiczne zmianę rozmiaru i są przydatne do implementacji dynamicznych struktur danych, takich jak stosy i kolejki. Są one szczególnie przydatne, gdy konieczne są częste modyfikacje, choć nie oferują możliwości dostępu swobodnego.

Jaka jest różnica między listami pojedynczo i podwójnie połączonymi?

Główna różnica polega na tym, że listy pojedynczo połączone zawierają węzły z pojedynczym odwołaniem do następnego węzła, co umożliwia przeglądanie w jedną stronę, podczas gdy listy podwójnie połączone zawierają węzły z odwołaniami zarówno do następnego, jak i poprzedniego węzła, co umożliwia przeglądanie w obie strony.

Jak wygenerować plik PDF na podstawie danych z listy połączonej w języku C#?

Można iterować po liście połączonej w celu zebrania danych, a następnie użyć API IronPDF do renderowania tych danych do dokumentu PDF. Wymaga to wykorzystania metod takich jak HtmlToPdf do konwersji treści ustrukturyzowanych do profesjonalnego formatu PDF.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie