ホームページ > バックエンド開発 > C++ > C#foreachループの反復インデックスにアクセスするにはどうすればよいですか?

C#foreachループの反復インデックスにアクセスするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-27 17:56:10
オリジナル
225 人が閲覧しました

How Can I Access the Iteration Index in a C# Foreach Loop?

c#ループは、コレクションを繰り返すための簡潔な方法を提供します。 ただし、反復インデックスに直接アクセスすることは本質的にサポートされていません。 これを達成するためのいくつかの方法を以下に示します:

foreach

1。マニュアルカウンター:

最も単純なアプローチには、手動でインクリメントされたカウンターが含まれます:

<code class="language-csharp">int index = 0;
foreach (var item in myCollection)
{
    // Use 'item' and 'index'
    index++;
}</code>
ログイン後にコピー
2。 linqのインデックス付き:

Selectlinqのメソッドは、インデックスを含む過負荷を提供します:

Selectこれにより、値とそのインデックスの両方を含む匿名タイプが作成されます。

<code class="language-csharp">foreach (var item in myCollection.Select((value, index) => new { Value = value, Index = index }))
{
    var value = item.Value;
    var index = item.Index;
    // Use 'value' and 'index'
}</code>
ログイン後にコピー
3。 ValueTuple(C#7.0以降):

パフォーマンスの向上とヒープの割り当ての避け(特に大規模なコレクションを使用する)の場合、

を使用してください。

これにより、クリーンな構文のためにタプル分解が活用されています。

ValueTuple

4。 ループの場合(代替):
<code class="language-csharp">foreach (var (value, index) in myCollection.Select((value, index) => (value, index)))
{
    // Access 'value' and 'index' directly
}</code>
ログイン後にコピー

インデックスアクセスを必要とする状況の場合、標準

ループはより直接的なソリューションを提供します:

このアプローチは、ループのロジックにとってインデックスが重要な場合に一般的に好まれます。 コーディングスタイルとパフォーマンスのニーズに最適な方法を選択してください。 単純なケースでは、手動カウンターで十分です。 大規模なコレクションまたはより複雑なシナリオの場合、Linq with は、読みやすさと効率のバランスを提供します。 インデックス操作がループの動作の中心である場合、

ループは実行可能なオプションのままです。

以上がC#foreachループの反復インデックスにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート