
C# List (開発者向けの仕組み)
リストは、C#でデータのコレクションを保存および操作するために使用される、多才で動的なデータ構造です。 それらはSystem.Collections.Generic名前空間の一部で、強力で型安全なコレクションクラスと強く型付けされたオブジェクトの幅広い範囲を提供します。 この初心者向けチュートリアルでは、C#リストの基本と要素の操作を説明します。
リストの作成
Listクラスを使用開始するには、まずコード内にSystem.Collections.Generic名前空間を含める必要があります。
using System.Collections.Generic;Imports System.Collections.Genericジェネリック名前空間を追加した後、格納したいすべての要素のデータ型を指定して、新しい< >) 整数のリストを作成する方法の例を次に示します。
List<int> numbers = new List<int>();Dim numbers As New List(Of Integer)()また、初期値でリストを初期化するか、このように指定されたコレクションによって定義することもできます。
List<string> fruits = new List<string> { "apple", "banana", "cherry" };Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}リストのデフォルトの初期容量を指定することもできます。指定された初期容量は、そのリストのデフォルトの最大容量です。
リストのメソッド
リストへの要素数の追加
Listに要素を追加するには、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)指定されたコレクションから一連の要素をリストに追加するには、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)リスト要素へのアクセス
配列と同様に、インデックスを使用してリストの個々の要素にアクセスできます。
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"リストは0ベースのインデックスであることに注意してください。そのため、最初の要素のインデックスは0です。上記の例では、要素が存在する場合、その要素は文字列に格納されます。
リスト要素の変更
リストの要素を変更するには、単に目的のインデックスの要素に新しい値を割り当てます。0ベースのインデックスであることを忘れないでください。
fruits[1] = "blueberry";fruits(1) = "blueberry"今や、フルーツリストの2番目の要素は"バナナ"ではなく"ブルーベリー"です。
リストから要素の削除
リストから要素を削除するには、Removeメソッドを使用して、指定された要素の最初の出現を削除できます。
fruits.Remove("apple");fruits.Remove("apple")別の方法として、指定されたインデックスの要素を削除するRemoveAtメソッドを使用することもできます。
fruits.RemoveAt(0);fruits.RemoveAt(0)リストからすべての要素を削除するには、Clearメソッドを使用します。
fruits.Clear();fruits.Clear()リストの要素の検索
特定の要素がリストに含まれているかどうかを確認するには、Contains()メソッドを使用できます。
bool containsApple = fruits.Contains("apple"); // trueDim containsApple As Boolean = fruits.Contains("apple") ' true要素の最初の出現のインデックスを見つけるには、IndexOfメソッドを使用します。
int appleIndex = fruits.IndexOf("apple"); // 0Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0要素が見つからない場合、IndexOfは-1を返します。
リストをループ処理
リスト内の要素を繰り返すには、foreachループを使用できます。
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}For Each fruit As String In fruits
Console.WriteLine(fruit)
Next fruit別の方法として、リスト内の要素数を返すforループを使用することもできます。
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リストの並べ替え
リストを昇順に並べ替えるには、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 }カスタムの比較を使用してリストを降順に並べ替えるには、Sortメソッドを使用できます。
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 }より複雑なソートの場合は、カスタムIComparerクラスを実装するか、LINQ(Language Integrated Query)を使用できます。 二分探索アルゴリズムは、ソートされたリストに適用されます。
リストと LINQ を組み合わせて使用する
LINQ を使用すると、リストを含むコレクションに強力なクエリと変換を実行できます。 LINQを使用するには、まずコード内でSystem.Linq名前空間を含める必要があります。
using System.Linq;Imports System.Linqここに、リスト上のLINQクエリのいくつかの例があります。
リストのフィルタリング
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()リスト内の要素をマッピング(変換)
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()リスト内の最小および最大値の検索
int minValue = numbers.Min();
int maxValue = numbers.Max();Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()リストを配列に変換
リストを配列に変換するには、ToArrayメソッドを使用できます。
int[] numbersArray = numbers.ToArray();Dim numbersArray() As Integer = numbers.ToArray()IronPDF を使用してリスト データを PDF にエクスポートする
このセクションでは、IronPDF ライブラリを使用してリスト内のデータをPDFファイルにエクスポートする方法を示します。 これは、レポートやデータの印刷可能なバージョンを生成したいときに便利です。
まず、IronPDF NuGet パッケージをプロジェクトにダウンロードしてインストールします。
次に、コード内にIronPdf名前空間を含めます。
using IronPdf;Imports IronPdf文字列のListをHTMLテーブルに変換し、それを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 Subこの関数を使用するには、リストと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")これにより、IronPDF で HTML を PDF に変換 することによって、フルーツのリストを含むテーブルを持つ"Fruits.pdf"という名前の PDF ファイルが生成されます。 HTMLテーブルにカスタムスタイリングを追加したり、PDFに追加コンテンツを追加したりして、ニーズに合わせてExportListToPdf関数を変更できます。

結論
この初心者向けチュートリアルでは、C# リストの基本を説明し、IronPDF と統合してリスト データを PDF ファイルにエクスポートする方法を示しました。 IronPDF をプロジェクトに組み込むことで、C# プロジェクトからレポート、請求書、その他の印刷可能な文書を簡単に生成できます。
IronPDF は無料トライアルを提供しており、購入前にその機能をテストできます。

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。
関連する記事


