
Lista C# (jak to działa dla programistów)
Listy to wszechstronne i dynamiczne struktury danych używane do przechowywania i manipulowania zbiorami danych w języku C#. Sa czescia przestrzeni nazw System.Collections.Generic, ktora oferuje szereg potężnych klas kolekcji z bezpiecznymi typami i silnie typizowane obiekty. Ten przyjazny dla początkujących samouczek przeprowadzi Cię przez podstawy korzystania z list w języku C#, w tym sposób tworzenia/dodawania elementów, uzyskiwania dostępu do określonych indeksów lub pierwszych wystąpień, modyfikowania określonych elementów i usuwania elementów, a także przedstawi kilka typowych przypadków użycia.
Tworzenie list
Aby rozpocząć korzystanie z klasy List, najpierw musisz uwzględnić przestrzeń nazw System.Collections.Generic w swoim kodzie:
using System.Collections.Generic;Imports System.Collections.GenericPo dodaniu przestrzeni nazw generycznych, utwórz nowy obiekt List, określając typ danych wszystkich elementów, które chcesz przechowywać w nawiasach kątowych (< >). Oto przykład tworzenia listy liczb całkowitych:
List<int> numbers = new List<int>();Dim numbers As New List(Of Integer)()Można również zainicjować listę z pewnymi wartościami początkowymi lub zdefiniować ją na podstawie określonej kolekcji w następujący sposób:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}Możemy również określić domyślną początkową pojemność listy. Określona początkowa pojemność jest domyślną maksymalną pojemnością listy.
Metody listy
Dodawanie liczby elementów do listy
Aby dodać elementy do Listy, użyj metody Add():
numbers.Add(1); // Adds first element
numbers.Add(2);
numbers.Add(3);numbers.Add(1) ' Adds first element
numbers.Add(2)
numbers.Add(3)Możesz również dodać zakres elementów z określonej kolekcji do listy za pomocą metody AddRange:
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)Dostęp do elementów listy
Dostęp do poszczególnych elementów listy można uzyskać za pomocą indeksu, podobnie jak w przypadku tablic:
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"Należy pamiętać, że listy są indeksowane od zera, więc pierwszy element ma indeks 0. Powyższy przykład zapisze element w ciągu znaków, jeśli istnieje.
Modyfikowanie elementów listy
Aby zmodyfikować element na liście, wystarczy przypisać nową wartość do elementu o żądanym indeksie, pamiętając o indeksowaniu od zera:
fruits[1] = "blueberry";fruits(1) = "blueberry"Teraz drugim elementem na liście owoców jest "jagoda" zamiast "banan".
Usuwanie elementów z listy
Aby usunąć element z listy, możesz użyć metody Remove, która usuwa pierwsze wystąpienie określonego elementu:
fruits.Remove("apple");fruits.Remove("apple")Alternatywnie, możesz użyć metody RemoveAt, aby usunąć element na określonym indeksie:
fruits.RemoveAt(0);fruits.RemoveAt(0)Aby usunąć wszystkie elementy z listy, użyj metody Clear:
fruits.Clear();fruits.Clear()Wyszukiwanie elementów na liście
Możesz użyć metody Contains(), aby sprawdzić, czy lista zawiera określony element:
bool containsApple = fruits.Contains("apple"); // trueDim containsApple As Boolean = fruits.Contains("apple") ' trueAby znaleźć indeks pierwszego wystąpienia elementu, użyj metody IndexOf:
int appleIndex = fruits.IndexOf("apple"); // 0Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0Jeśli element nie zostanie znaleziony, IndexOf zwróci -1.
Przechodzenie przez listę
Aby przejść przez elementy na liście, możesz użyć pętli foreach:
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}For Each fruit As String In fruits
Console.WriteLine(fruit)
Next fruitAlternatywnie, możesz użyć pętli for z właściwością Count, która zwraca liczbę elementów na liście:
for (int i = 0; i < fruits.Count; i++)
{
Console.WriteLine(fruits[i]);
}For i As Integer = 0 To fruits.Count - 1
Console.WriteLine(fruits(i))
Next iSortowanie listy
Aby posortować listę w porządku rosnącym, użyj metody Sort:
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()
' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }Aby posortować listę w porządku malejącym, możesz użyć metody Sort z niestandardowym porównaniem:
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))
' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }Dla bardziej zaawansowanego sortowania, możesz zaimplementować niestandardową klasę IComparer lub użyć LINQ (Language Integrated Query). Algorytm wyszukiwania binarnego działa na posortowanych listach.
Korzystanie z LINQ z listami
LINQ pozwala na wykonywanie zaawansowanych zapytań i transformacji na zbiorach, w tym listach. Aby użyć LINQ, najpierw musisz uwzględnić przestrzeń nazw System.Linq w swoim kodzie:
using System.Linq;Imports System.LinqOto kilka przykładów zapytań LINQ dotyczących listy:
Filtrowanie listy
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()Mapowanie (transformacja) elementów na liście
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()Wyszukiwanie wartości minimalnej i maksymalnej na liście
int minValue = numbers.Min();
int maxValue = numbers.Max();Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()Konwersja listy na tablicę
Aby przekonwertować listę na tablicę, możesz użyć metody ToArray:
int[] numbersArray = numbers.ToArray();Dim numbersArray() As Integer = numbers.ToArray()Eksportowanie danych z listy do pliku PDF przy użyciu IronPDF
W tej sekcji pokażemy, jak wyeksportować dane z listy do pliku PDF przy użyciu biblioteki IronPDF. Może to być pomocne, gdy chcesz wygenerować raport lub wersję danych do wydruku.
Najpierw pobierz i zainstaluj pakiet IronPDF NuGet w swoim projekcie:
Następnie uwzględnij przestrzeń nazw IronPdf w swoim kodzie:
using IronPdf;Imports IronPdfTeraz stwórzmy prostą funkcję, która konwertuje List ciągów na tabelę HTML, a następnie eksportuje ją do pliku PDF:
using System.Collections.Generic;
using System.Text;
using IronPdf;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}Imports System.Collections.Generic
Imports System.Text
Imports IronPdf
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
' Create an HTML table from the list data
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("<table><tr><th>Item</th></tr>")
For Each item As String In data
htmlBuilder.Append($"<tr><td>{item}</td></tr>")
Next item
htmlBuilder.Append("</table>")
' Convert the HTML table to a PDF using IronPDF
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
' Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath)
End SubAby skorzystać z tej funkcji, wystarczy wywołać ją, podając listę i ścieżkę do żądanego pliku PDF:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")Spowoduje to wygenerowanie pliku PDF o nazwie "Fruits.pdf" zawierającego tabelę z listą owoców poprzez konwersję HTML do PDF za pomocą IronPDF. Możesz dostosować funkcję ExportListToPdf do swoich potrzeb, na przykład dodając niestandardowe stylowanie do tabeli HTML lub dodatkową treść do pliku PDF.

Wnioski
W tym przyjaznym dla początkujących samouczku omówiliśmy podstawy korzystania z list C# i pokazaliśmy, jak zintegrować IronPDF w celu eksportowania danych z listy do pliku PDF. Dzięki włączeniu IronPDF do swoich projektów można łatwo generować raporty, faktury lub inne dokumenty do druku z poziomu projektów C#.
IronPDF oferuje bezpłatną wersję próbną, która pozwala przetestować jego możliwości przed podjęciem decyzji o zakupie.

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ącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.
Powiązane artykuły


