C# iList(開発者向けの動作方法)
IList の紹介
IList は.NET Framework のコレクション名前空間の一部です。 これは、インデックスで個別にアクセス可能なオブジェクトのコレクションの設計図を提供する、非ジェネリックなコレクションインターフェースです。 配列とは異なり、 IListではオブジェクト値要素の数が動的に設定されるため、必要に応じてコレクションに要素を追加したり、コレクションから要素を削除したりできます。 これは、.NET Framework内のすべての非ジェネリックリストの基本インターフェースとして機能し、配列よりも柔軟な方法でオブジェクトの集合を管理する手段を提供します。 このチュートリアルでは、IList インターフェイスとIronPDF C# PDF ライブラリについて学習します。
IList インターフェースの理解
public interface IList 宣言は、 .NET Framework の Collections 名前空間で指定された IList コントラクトに準拠した C# でのカスタム コレクションの作成の基本的な部分です。 IList には、コレクション内の要素にアクセスし、それらの要素をカウントし、要素を追加、挿入、または削除してコレクションを変更できるようにするプロパティとメソッドが含まれています。 IList インターフェイスで定義されている主要なプロパティとメソッドの一部を次に示します。
IsFixedSizeやIsReadOnlyなどのプロパティは、コレクションがそれぞれ固定サイズか読み取り専用かを示します。- コレクション内の要素を変更するには、
RemoveAtなどのメソッドを使用します。 要素を追加、挿入、削除できます。 IndexOfメソッドは要素を特定するためのもので、Itemプロパティ (C# ではインデクサー) を使用すると、インデックスに基づいて要素を取得および設定できます。
IList インターフェースの実践的な使用法
IList がどのように機能するかを示すために、簡単な例を作成しましょう。 この例では、IList を宣言し、それに項目を追加し、その内容を反復処理する方法を示します。
IList の作成と変更
まず、IList を宣言し、それに項目を追加する方法を見てみましょう。
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
// Creating an IList instance
IList myIList = new ArrayList();
// Adding elements to the IList
myIList.Add("Hello");
myIList.Add(10);
myIList.Add(new object());
// Displaying the number of values in the IList using the Count property
Console.WriteLine($"Number of elements: {myIList.Count}");
// Accessing elements using a loop
foreach (var element in myIList)
{
Console.WriteLine(element);
}
}
}
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
// Creating an IList instance
IList myIList = new ArrayList();
// Adding elements to the IList
myIList.Add("Hello");
myIList.Add(10);
myIList.Add(new object());
// Displaying the number of values in the IList using the Count property
Console.WriteLine($"Number of elements: {myIList.Count}");
// Accessing elements using a loop
foreach (var element in myIList)
{
Console.WriteLine(element);
}
}
}
Imports System
Imports System.Collections
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Creating an IList instance
Dim myIList As IList = New ArrayList()
' Adding elements to the IList
myIList.Add("Hello")
myIList.Add(10)
myIList.Add(New Object())
' Displaying the number of values in the IList using the Count property
Console.WriteLine($"Number of elements: {myIList.Count}")
' Accessing elements using a loop
For Each element In myIList
Console.WriteLine(element)
Next element
End Sub
End Class
上記の例では、IList を実装するクラスである ArrayList を使用して、IList インスタンスを作成しました。 IList が任意のオブジェクトを保持できることを示すために、さまざまな種類のオブジェクトの組み合わせを追加しました。 最後に、コレクションを反復処理し、各要素を印刷しました。
インデックスに基づくアクセスおよび変更
インデックスによる要素へのアクセスと変更は、IList の重要な機能です。 次の例は、それを行う方法を示しています:
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
IList myIList = new ArrayList { "Hello", 10, new object() };
// Accessing an element by index
object value = myIList[1];
Console.WriteLine($"Element at index 1: {value}");
// Modifying an element by index
myIList[1] = 20;
Console.WriteLine($"Modified element at index 1: {myIList[1]}");
}
}
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
IList myIList = new ArrayList { "Hello", 10, new object() };
// Accessing an element by index
object value = myIList[1];
Console.WriteLine($"Element at index 1: {value}");
// Modifying an element by index
myIList[1] = 20;
Console.WriteLine($"Modified element at index 1: {myIList[1]}");
}
}
Imports System
Imports System.Collections
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim myIList As IList = New ArrayList From { "Hello", 10, New Object() }
' Accessing an element by index
Dim value As Object = myIList(1)
Console.WriteLine($"Element at index 1: {value}")
' Modifying an element by index
myIList(1) = 20
Console.WriteLine($"Modified element at index 1: {myIList(1)}")
End Sub
End Class
カスタムの実装 IList
場合によっては、IList を継承したカスタマイズされたコレクションが必要になることがあります。 これにより、要素の保管、アクセス、変更方法に対するよりよい制御が可能になります。 以下は、IList を実装する単純なカスタム コレクションの例です。
using System;
using System.Collections;
public class CustomCollection : IList
{
private ArrayList _innerList = new ArrayList();
public object this[int index]
{
get => _innerList[index];
set => _innerList[index] = value;
}
public bool IsFixedSize => _innerList.IsFixedSize;
public bool IsReadOnly => _innerList.IsReadOnly;
public int Count => _innerList.Count;
public bool IsSynchronized => _innerList.IsSynchronized;
public object SyncRoot => _innerList.SyncRoot;
public int Add(object value)
{
return _innerList.Add(value);
}
public void Clear()
{
_innerList.Clear();
}
public bool Contains(object value)
{
return _innerList.Contains(value);
}
public int IndexOf(object value)
{
return _innerList.IndexOf(value);
}
public void Insert(int index, object value)
{
_innerList.Insert(index, value);
}
public void Remove(object value)
{
_innerList.Remove(value);
}
public void RemoveAt(int index)
{
_innerList.RemoveAt(index);
}
public void CopyTo(Array array, int index)
{
_innerList.CopyTo(array, index);
}
public IEnumerator GetEnumerator()
{
return _innerList.GetEnumerator();
}
}
using System;
using System.Collections;
public class CustomCollection : IList
{
private ArrayList _innerList = new ArrayList();
public object this[int index]
{
get => _innerList[index];
set => _innerList[index] = value;
}
public bool IsFixedSize => _innerList.IsFixedSize;
public bool IsReadOnly => _innerList.IsReadOnly;
public int Count => _innerList.Count;
public bool IsSynchronized => _innerList.IsSynchronized;
public object SyncRoot => _innerList.SyncRoot;
public int Add(object value)
{
return _innerList.Add(value);
}
public void Clear()
{
_innerList.Clear();
}
public bool Contains(object value)
{
return _innerList.Contains(value);
}
public int IndexOf(object value)
{
return _innerList.IndexOf(value);
}
public void Insert(int index, object value)
{
_innerList.Insert(index, value);
}
public void Remove(object value)
{
_innerList.Remove(value);
}
public void RemoveAt(int index)
{
_innerList.RemoveAt(index);
}
public void CopyTo(Array array, int index)
{
_innerList.CopyTo(array, index);
}
public IEnumerator GetEnumerator()
{
return _innerList.GetEnumerator();
}
}
Imports System
Imports System.Collections
Public Class CustomCollection
Implements IList
Private _innerList As New ArrayList()
Default Public Property Item(ByVal index As Integer) As Object Implements IList.Item
Get
Return _innerList(index)
End Get
Set(ByVal value As Object)
_innerList(index) = value
End Set
End Property
Public ReadOnly Property IsFixedSize() As Boolean Implements IList.IsFixedSize
Get
Return _innerList.IsFixedSize
End Get
End Property
Public ReadOnly Property IsReadOnly() As Boolean Implements IList.IsReadOnly
Get
Return _innerList.IsReadOnly
End Get
End Property
Public ReadOnly Property Count() As Integer Implements System.Collections.ICollection.Count
Get
Return _innerList.Count
End Get
End Property
Public ReadOnly Property IsSynchronized() As Boolean Implements System.Collections.ICollection.IsSynchronized
Get
Return _innerList.IsSynchronized
End Get
End Property
Public ReadOnly Property SyncRoot() As Object Implements System.Collections.ICollection.SyncRoot
Get
Return _innerList.SyncRoot
End Get
End Property
Public Function Add(ByVal value As Object) As Integer Implements IList.Add
Return _innerList.Add(value)
End Function
Public Sub Clear() Implements IList.Clear
_innerList.Clear()
End Sub
Public Function Contains(ByVal value As Object) As Boolean Implements IList.Contains
Return _innerList.Contains(value)
End Function
Public Function IndexOf(ByVal value As Object) As Integer Implements IList.IndexOf
Return _innerList.IndexOf(value)
End Function
Public Sub Insert(ByVal index As Integer, ByVal value As Object) Implements IList.Insert
_innerList.Insert(index, value)
End Sub
Public Sub Remove(ByVal value As Object) Implements IList.Remove
_innerList.Remove(value)
End Sub
Public Sub RemoveAt(ByVal index As Integer) Implements IList.RemoveAt
_innerList.RemoveAt(index)
End Sub
Public Sub CopyTo(ByVal array As Array, ByVal index As Integer) Implements System.Collections.ICollection.CopyTo
_innerList.CopyTo(array, index)
End Sub
Public Function GetEnumerator() As IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
Return _innerList.GetEnumerator()
End Function
End Class
この CustomCollection クラスは、それ自体が IList を実装するクラスである ArrayList をカプセル化します。 私たちの CustomCollection は呼び出しを基礎となる ArrayList に転送し、IList を実装する他のコレクションと同じように動作できるようにします。 この例では、IList を実装する組み込みの .NET コレクションと同様に、インデックスでアクセスでき、変更 (項目の追加、挿入、または削除) でき、反復処理できるコレクションを作成する方法を示します。
IList を使用した高度な操作
基本的な追加、削除、アクセス操作に加えて、IList ではより複雑な操作やクエリが可能になります。 たとえば、コレクションに特定のオブジェクトが含まれているかを確認したり、コレクション内のオブジェクトのインデックスを見つけることは、特定のアプリケーションにとって重要な場合もあります:
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
IList myIList = new ArrayList { "Hello", 10, new object() };
// Check if the IList contains a specific object
bool contains = myIList.Contains(10); // Assuming 10 was added previously
Console.WriteLine($"Contains 10: {contains}");
// Find the index of a specific object
int index = myIList.IndexOf(10);
Console.WriteLine($"Index of 10: {index}");
}
}
using System;
using System.Collections;
class Program
{
static void Main(string[] args)
{
IList myIList = new ArrayList { "Hello", 10, new object() };
// Check if the IList contains a specific object
bool contains = myIList.Contains(10); // Assuming 10 was added previously
Console.WriteLine($"Contains 10: {contains}");
// Find the index of a specific object
int index = myIList.IndexOf(10);
Console.WriteLine($"Index of 10: {index}");
}
}
Imports System
Imports System.Collections
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim myIList As IList = New ArrayList From { "Hello", 10, New Object() }
' Check if the IList contains a specific object
Dim contains As Boolean = myIList.Contains(10) ' Assuming 10 was added previously
Console.WriteLine($"Contains 10: {contains}")
' Find the index of a specific object
Dim index As Integer = myIList.IndexOf(10)
Console.WriteLine($"Index of 10: {index}")
End Sub
End Class
これらの操作は、特定のアイテムの存在や位置を、コレクション全体を反復処理しないで判定する必要があるときに、オブジェクトのコレクションを扱う際に特に便利です。
IronPDF: C# PDFライブラリ

IronPDFは、.NETアプリケーション内で直接PDFドキュメントの作成と操作を可能にする.NET開発者向けのPDFライブラリです。 HTMLをPDF文書に変換する、画像、WebページをPDFに変換することをサポートしています。 開発者は、このライブラリを使用してアプリケーションに簡単にPDF機能を追加できます。 IronPDFには、PDFファイルの編集、結合、分割機能も含まれており、PDF操作を包括的に制御できます。
IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な PDF ドキュメントを簡単に生成します。
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
コード例
以下は、 IronPDFと IList インターフェイスを使用して文字列のリストから単純な PDF ドキュメントを生成する簡単な例です。
using IronPdf;
using System.Collections.Generic;
public class PDFGenerator
{
public static void GeneratePDFFromList(IList<string> dataList)
{
// Initialize the HtmlToPdf renderer
var renderer = new ChromePdfRenderer();
// Start building HTML content from the dataList
var htmlContent = "<h1>My Data List</h1><ul>";
foreach (var item in dataList)
{
htmlContent += $"<li>{item}</li>";
}
htmlContent += "</ul>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
pdfDocument.SaveAs("DataList.pdf");
}
}
// Example usage
class Program
{
static void Main(string[] args)
{
License.LicenseKey = "License-Key";
IList<string> myDataList = new List<string> { "Apple", "Banana", "Cherry" };
PDFGenerator.GeneratePDFFromList(myDataList);
}
}
using IronPdf;
using System.Collections.Generic;
public class PDFGenerator
{
public static void GeneratePDFFromList(IList<string> dataList)
{
// Initialize the HtmlToPdf renderer
var renderer = new ChromePdfRenderer();
// Start building HTML content from the dataList
var htmlContent = "<h1>My Data List</h1><ul>";
foreach (var item in dataList)
{
htmlContent += $"<li>{item}</li>";
}
htmlContent += "</ul>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
// Save the PDF to a file
pdfDocument.SaveAs("DataList.pdf");
}
}
// Example usage
class Program
{
static void Main(string[] args)
{
License.LicenseKey = "License-Key";
IList<string> myDataList = new List<string> { "Apple", "Banana", "Cherry" };
PDFGenerator.GeneratePDFFromList(myDataList);
}
}
Imports IronPdf
Imports System.Collections.Generic
Public Class PDFGenerator
Public Shared Sub GeneratePDFFromList(ByVal dataList As IList(Of String))
' Initialize the HtmlToPdf renderer
Dim renderer = New ChromePdfRenderer()
' Start building HTML content from the dataList
Dim htmlContent = "<h1>My Data List</h1><ul>"
For Each item In dataList
htmlContent &= $"<li>{item}</li>"
Next item
htmlContent &= "</ul>"
' Convert HTML string to PDF
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
' Save the PDF to a file
pdfDocument.SaveAs("DataList.pdf")
End Sub
End Class
' Example usage
Friend Class Program
Shared Sub Main(ByVal args() As String)
License.LicenseKey = "License-Key"
Dim myDataList As IList(Of String) = New List(Of String) From {"Apple", "Banana", "Cherry"}
PDFGenerator.GeneratePDFFromList(myDataList)
End Sub
End Class
この例では、果物の名前のコレクションを格納するために IList<string> が使用されます。 GeneratePDFFromList メソッドはこのリストを反復処理し、順序なしリストの各項目を含む HTML 文字列を構築します。IronPDF の ChromePdfRenderer は、この HTML コンテンツを PDF ドキュメントに変換し、ファイルに保存します。

結論

この初心者向けのガイドは、C# における IList の基本と実用的な使用法を説明することを目的としています。 単純な使用法からカスタム実装までさまざまな例から、IList が C# 開発者ツールキットの強力なツールであることは明らかです。 データのコレクションを操作する場合でも、コレクション タイプを構築する場合でも、IList は、効果的なソフトウェア開発に必要な機能と柔軟性を提供します。 IronPDF は、興味のあるユーザー向けにPDF ライブラリの無料試用版を提供しており、ライセンスは $999 からご利用いただけます。
よくある質問
C# における IList インターフェイスとは何ですか?
`IList` インターフェイスは、.NET Framework の Collections 名前空間の一部で、インデックスによってアクセスできる動的なコレクションの作成に使用されます。追加、挿入、削除、要素へのアクセスのためのメソッドを提供し、静的配列よりも柔軟性を提供します。
C#でHTMLをPDFに変換する方法は?
C# で IronPDF の `RenderHtmlAsPdf` メソッドを使用して HTML を PDF に変換できます。これにより、HTML 文字列、ファイル、URL を高品質な PDF ドキュメントに変換することができます。
IList インターフェイスの主なメソッドは何ですか?
`IList` インターフェイスの主要なメソッドには、`Add`、`Insert`、`Remove`、`RemoveAt`、および `IndexOf` が含まれます。これらのメソッドは、コレクション内の要素を動的に管理および変更するために不可欠です。
C#でカスタムIListを作成するにはどうすればよいですか?
C# でカスタム `IList` を作成するためには、クラス内で `IList` インターフェイスを実装し、`Add`、`Remove`、`IndexOf` などの必要なメソッドやプロパティをオーバーライドして、コレクションが要素をどのように処理するかをカスタマイズします。
IronPDF はどのようにして HTML から PDF を作成しますか?
IronPDF は `ChromePdfRenderer` クラスを使用して HTML コンテンツを PDF に変換します。これにより、HTML 文字列、ファイル、URL からの変換をサポートし、ウェブコンテンツからの正確な PDF 作成を保証します。
データの IList から PDF を生成できますか?
はい、IList を繰り返し処理して HTML 文字列を構築し、IronPDF の `ChromePdfRenderer` を使用して HTML を PDF ドキュメントに変換し、`SaveAs` メソッドを使用して保存することで、IList から PDF を生成できます。
IList がサポートしている高度な操作は何ですか?
`IList` の高度な操作には、`Contains` を使用してコレクションが特定のオブジェクトを含んでいるかどうかを確認したり、`IndexOf` を使用してオブジェクトのインデックスを見つけたりすることが含まれます。これらの機能は、要素を手動で検索する必要なく、効率的にコレクションを管理するのに役立ちます。
C# で PDF 生成の問題をトラブルシュートするにはどうすればよいですか?
C# で PDF 生成に問題が発生した場合は、HTML コンテンツが正しくフォーマットされていること、最新の IronPDF バージョンを使用していることを確認してください。変換プロセス中にスローされた例外をチェックして、さらに洞察を得てください。




