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;
using System.Collections.Generic;
Imports System.Collections.Generic
Po 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>();
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" };
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);
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);
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"
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";
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");
fruits.Remove("apple")
Alternatywnie, możesz użyć metody RemoveAt, aby usunąć element na określonym indeksie:
fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
Aby usunąć wszystkie elementy z listy, użyj metody Clear:
fruits.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"); // true
bool containsApple = fruits.Contains("apple"); // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
Aby znaleźć indeks pierwszego wystąpienia elementu, użyj metody IndexOf:
int appleIndex = fruits.IndexOf("apple"); // 0
int appleIndex = fruits.IndexOf("apple"); // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
Jeś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);
}
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
For Each fruit As String In fruits
Console.WriteLine(fruit)
Next fruit
Alternatywnie, 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 (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 i
Sortowanie 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 }
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((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;
using System.Linq;
Imports System.Linq
Oto kilka przykładów zapytań LINQ dotyczących listy:
Filtrowanie listy
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
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();
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();
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();
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:
Install-Package IronPdf
Następnie uwzględnij przestrzeń nazw IronPdf w swoim kodzie:
using IronPdf;
using IronPdf;
Imports IronPdf
Teraz 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);
}
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 Sub
Aby 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");
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.
Często Zadawane Pytania
Jak mogę stworzyć liste w C#?
Aby stworzyć liste w C#, należy uwzględnić przestrzen nazw System.Collections.Generic. Możesz wtedy zadeklarowac liste, okreslajac typ danych w nawiasach trojkatnych. Na przykład: List
Jakie metody sa stosowane do dodawania elementow do listy w C#?
Elementy mogą być dodawane do listy C# przy użyciu metody Add() dla pojedynczych elementow oraz AddRange() dla dodawania kolekcji elementow.
Jak mogę zaexportowac liste C# do pliku PDF?
Aby zaexportowac liste C# do pliku PDF, można uzyc biblioteki IronPDF. Przeksztalc dane z listy w format tabeli HTML, a następnie wyrenderować je jako PDF za pomoca IronPDF.
Jaki jest najlepszy sposob na sortowanie listy C#?
Możesz posortowac liste C# w porzadku rosnącym, używając metody Sort(). Aby posortowac w porzadku malejacym, możesz uzyc Sort() z niestandardowym delegatem porownawczym.
Jak uzyskać dostep do elementow w liscie C#?
Elementy w liscie C# mogą być dostępne przy użyciu ich indeksu, podobnie jak w tablicach. Listy sa indeksowane od zera, wiec możesz uzyc pozycji elementu na liscie, aby go pobrac.
Jakie opcje sa dostępne do usuwania elementow z listy C#?
Możesz usunac elementy z listy C# przy pomocy metody Remove() dla konkretnych elementow, RemoveAt() dla konkretnego indeksu, lub Clear() do usuniecia wszystkich elementow.
Jak można wykorzystać LINQ z listami C#?
LINQ można uzyc z listami C# do wykonywania poteznych zapytan i transformacji, takich jak filtrowanie, mapowanie i wyszukiwanie wartosci minimalnych lub maksymalnych w skuteczny sposob.
Jak mogę konwertować liste na tablice w C#?
Możesz konwertować liste C# na tablice za pomoca metody ToArray(), która tworzy nowa tablice zawierajaca elementy z listy.
Jakie sa niektóre typowe przypadki użycia list C#?
Listy C# sa często używane do zarządzania dynamicznymi kolekcjami danych, wykonywania zlozonych zapytan z LINQ, oraz generowania raportow lub dokumentów za pomoca takich bibliotek jak IronPDF.
Jak przebiegac przez elementy w liscie C#?
Możesz przebiegac przez elementy w liscie C# używając pętli foreach do prostej iteracji lub pętli for, gdy potrzebujesz indeksu.




