透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
C#(シーシャープ)では、リストの印刷は一般的なタスクであり、さまざまな方法で実現できるため、柔軟性とカスタマイズ性があります。 リストはC#(シーシャープ)の基本的なデータ構造であり、その内容を表示できることは、デバッグやロギング、ユーザーへの情報表示に極めて重要である。
この記事では、C#でリストを表示するさまざまな方法を探ります。
C# では、list
は動的配列であり、サイズを増減することができます。これはSystem.Collections.Generic
名前空間の一部であり、アイテムのコレクションを処理する際の柔軟性と効率性を提供します。 次のコードは単純な数字リストを作成する:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
}
}
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
リストの要素を印刷する従来のシンプルな方法は、foreach
ループを使用することです。以下は簡単な例です:
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Printing list using foreach loop:");
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
Console.WriteLine("Printing list using foreach loop:");
foreach (var number in numbers)
{
Console.WriteLine(number);
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Console.WriteLine("Printing list using foreach loop:")
For Each number In numbers
Console.WriteLine(number)
Next number
End Sub
End Class
この方法は簡潔で読みやすく、ほとんどのシナリオに適している。
インデックスに対するより多くの制御が必要な場合や、条件に応じて要素を印刷したい場合は、for
ループを使用できます。以下は文字列リストの例です:
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
// create list of strongly typed objects
List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
Console.WriteLine("Printing list using for loop:");
for (int index = 0; index < colors.Count; index++)
{
Console.WriteLine($"Color at index {index}: {colors[index]}");
}
}
}
using System;
using System.Collections.Generic;
class Program
{
public static void Main()
{
// create list of strongly typed objects
List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
Console.WriteLine("Printing list using for loop:");
for (int index = 0; index < colors.Count; index++)
{
Console.WriteLine($"Color at index {index}: {colors[index]}");
}
}
}
Imports System
Imports System.Collections.Generic
Friend Class Program
Public Shared Sub Main()
' create list of strongly typed objects
Dim colors As New List(Of String) From {"Red", "Green", "Blue", "Yellow"}
Console.WriteLine("Printing list using for loop:")
For index As Integer = 0 To colors.Count - 1
Console.WriteLine($"Color at index {index}: {colors(index)}")
Next index
End Sub
End Class
この方法は、インデックスへのアクセスが必要な場合や、印刷中に特定のロジックを適用したい場合に有効です。
リストを逆順で印刷するには、Reverse
メソッドを利用することができます。 このメソッドは、リスト内の要素の順序を反転させ、それを反復して表示することができる。
たとえば、Reverse
メソッドを使用してリストを逆順にしてから、各要素を印刷することができます。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
Console.WriteLine(number);
}
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
Console.WriteLine(number);
}
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Reverse()
For Each number In numbers
Console.WriteLine(number)
Next number
OrderByDescending
メソッドも、キーを使用して、LINQ ジェネリック クラスから指定された要素のコレクションを並べ替えることができます。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
Console.WriteLine(number);
}
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
Console.WriteLine(number);
}
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim reversedNumbers = numbers.OrderByDescending(Function(n) n)
For Each number In reversedNumbers
Console.WriteLine(number)
Next number
リスト内の要素数を数えるのはよくある操作だ。 Count
プロパティまたは Count
メソッドをこの目的で使用できます。 カウントができたら、簡単に印刷できる。
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count
Console.WriteLine($"Number of elements: {count}")
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count()
Console.WriteLine($"Number of elements: {count}")
指定したインデックスの要素を印刷するには、そのインデックスのリストにアクセスする必要があります。 これにより、異なる場所にあるエレメントにアクセスし、インデックスが範囲外になる可能性のあるシナリオを確実に処理することができる:
List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
Console.WriteLine("Index out of range.");
}
List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
Console.WriteLine("Index out of range.");
}
Dim prices As New List(Of Double) From {19.99, 29.99, 39.99}
Dim indexToPrint As Integer = 1
If indexToPrint >= 0 AndAlso indexToPrint < prices.Count Then
Console.WriteLine($"Element at index {indexToPrint}: {prices(indexToPrint)}")
Else
Console.WriteLine("Index out of range.")
End If
これらの例は、さまざまなシナリオでリスト要素を印刷するための基礎となる。 印刷で使用できるlist
クラスが提供する他の便利なメソッドがあります。
いくつかの便利な方法がある:
Remove:
Remove() メソッドは C# リストの最初の出現を削除します。RemoveAll:
RemoveAll() メソッドは、指定された述語に基づいて要素を削除するために使用されます。RemoveRange:
RemoveRange() メソッドは、指定されたインデックスとカウントのパラメーターに基づいて要素の範囲を削除します。追加:
Add() メソッドはリストの末尾に1つの要素しか追加できません。AddRange:
AddRange() メソッドは、指定されたコレクションの要素を末尾に追加するために使用できます。Clear:
Clear() メソッドは、リストからすべての要素を削除します。Insert:
Insert() メソッドは、指定されたインデックスに要素をリストに挿入します。ForEach:
ForEach() メソッドは、各要素に対して特定のアクションを実行するために使用されます。例えば、各リストの値を効率的にプリントするなど。ToArray:
ToArray() メソッドはリストを新しい var 配列にコピーします。
あなたの要件に最も適したアプローチを選択し、C#(シーシャープ)コードの可読性と効率を高めることができます。
String.Join
メソッドは、指定されたセパレータでリストの要素を1つの文字列に連結する簡潔な方法を提供します。 これは、リストのフォーマットされた文字列表現を作成するのに便利である。
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim result As String = String.Join(", ", numbers)
Console.WriteLine(result)
ここでは、numbers
リストの要素がコンマとスペースで区切られた文字列として結合され、フォーマットされた出力が得られます。 ソート・メソッドは、リスト要素を印刷する前にも使える。
より複雑なシナリオの場合、印刷前に要素をフィルタリング、変換、またはフォーマットしたい場合、Language-Integrated Query (LINQ
) が有益です。
using System.Linq;
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
using System.Linq;
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
Imports System.Linq
Private numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Private evenNumbers As List(Of Integer) = numbers.Where(Function(n) n Mod 2 = 0).ToList()
Console.WriteLine("Even numbers: " & String.Join(", ", evenNumbers))
この例では、LINQを使用して元のリストから偶数をフィルタリングしています。Where()
メソッドはラムダ式と共に適用され、ToList()
メソッドを使用して結果を再びリストに変換します。
C# リストを印刷する(開発者向けの動作方法):図1 - コンソール出力: 偶数: 2, 4
カスタムオブジェクトのリストがある場合は、意味のある表現を行うために、オブジェクトクラスでToString
メソッドをオーバーライドすることをお勧めします。 次の例はその方法を示している:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return $"{Name}, {Age} years old";
}
}
class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};
foreach (Person person in people)
{
Console.WriteLine(person);
}
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public override string ToString()
{
return $"{Name}, {Age} years old";
}
}
class Program
{
public static void Main()
{
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 }
};
foreach (Person person in people)
{
Console.WriteLine(person);
}
}
}
Friend Class Person
Public Property Name() As String
Public Property Age() As Integer
Public Overrides Function ToString() As String
Return $"{Name}, {Age} years old"
End Function
End Class
Friend Class Program
Public Shared Sub Main()
Dim people As New List(Of Person) From {
New Person With {
.Name = "Alice",
.Age = 30
},
New Person With {
.Name = "Bob",
.Age = 25
}
}
For Each person As Person In people
Console.WriteLine(person)
Next person
End Sub
End Class
Person
クラスで ToString()
メソッドをオーバーライドすることで、そのクラスのインスタンスが文字列としてどのように表現されるかを制御できます。 これにより、印刷時のリストの読みやすさが向上します。
IronPrint は、正確さ、使いやすさ、スピードを重視した強力で導入可能な印刷ライブラリとして際立っています。 クロスプラットフォームのサポートとさまざまな文書形式との互換性により、アプリケーションで効率的な印刷ソリューションを求める.NET開発者にとって価値あるツールとなっています。
ここでは、C# (シーシャープ)アプリケーションで物理的なドキュメントを印刷するためにIronPrintを際立たせる重要な機能を紹介します:
NuGet パッケージ マネージャー コンソールを使用して IronPrint ライブラリをインストールします:
Install-Package IronPrint
Install-Package IronPrint
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPrint
あるいは、Visual Studioを使ってプロジェクトにインストールすることもできる。 ソリューション・エクスプローラーでプロジェクトを右クリックし、[Manage NuGet Package Manager for Solutions]をクリックします。 NuGet のブラウズタブで"ironprint"を検索し、検索結果から最新バージョンの IronPrint パッケージを選択して、インストールボタンをクリックしてプロジェクトに追加します。
IronPrintは、シンプルなPrint
メソッドを使用してドキュメントをサイレント印刷します。 物理的なプリンターが利用できない場合は、OSによって指定されたデフォルトのプリンターを使って印刷する。
using IronPrint;
// Print the document
Printer.Print("newDoc.pdf");
using IronPrint;
// Print the document
Printer.Print("newDoc.pdf");
Imports IronPrint
' Print the document
Printer.Print("newDoc.pdf")
印刷中のより良いコントロールのために、専用の方法でprint
ダイアログを表示する機能も提供します。 ShowPrintDialogAsync
メソッドは、非同期に印刷するためにも使用できます。
using IronPrint;
// Show print dialog
Printer.ShowPrintDialog("newDoc.pdf");
using IronPrint;
// Show print dialog
Printer.ShowPrintDialog("newDoc.pdf");
Imports IronPrint
' Show print dialog
Printer.ShowPrintDialog("newDoc.pdf")
IronPrintは印刷ドキュメントに対する詳細な制御を可能にする様々なprint
設定を提供します。
using IronPrint;
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("newDoc.pdf", printSettings);
using IronPrint;
// Configure print settings
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
// Print the document
Printer.Print("newDoc.pdf", printSettings);
Imports IronPrint
' Configure print settings
Private printSettings As New PrintSettings()
printSettings.Dpi = 150
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Portrait
' Print the document
Printer.Print("newDoc.pdf", printSettings)
クラスとメソッドの理解を深めるには、APIリファレンスページをご覧ください。
C#(シーシャープ)でリストを印刷するには、データの複雑さと必要な出力に基づいて適切なメソッドを選択する必要があります。 単純なループ、String.Join()
、LINQ、またはカスタムオブジェクトのToString()
メソッドをカスタマイズする場合でも、これらのアプローチを理解することで、C#アプリケーションでリストの内容を効果的に表示することができます。 これらのテクニックを試してみて、特定のユースケースに最も適したものを選択する。
IronPrint は、精度、使いやすさ、および速度を求める場合の定番の印刷ライブラリです。 Webアプリケーションの構築、MAUI、Avalonia、その他.NETに関連することなら何でも、IronPrintにお任せください。 IronPrintの詳細情報については、このドキュメントページをご覧ください。
IronPrintは有料ライブラリですが、無料トライアルがあります。 こちらからライブラリをダウンロードして試してみてください!