ホームページ > バックエンド開発 > C++ > C# で配列から要素を削除するにはどうすればよいですか?

C# で配列から要素を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-20 20:46:11
オリジナル
866 人が閲覧しました

How Do I Delete an Element from an Array in C#?

C# で配列要素を削除する

C# 配列を使用する場合、特定の要素を削除する必要がある状況が発生することがあります。この記事では、これを効果的に行う方法について詳しく説明します。

削除する要素を決定する

配列から要素を削除するには、まず要素を正確に識別する必要があります。残念ながら、配列は「名前」による要素の取得をネイティブにサポートしていません。ただし、他の手法を使用して、目的の値を正確に指定することもできます。

LINQ とループの使用

ターゲット フレームワークが .NET Framework 3.5 以降の場合、LINQ (統合言語クエリ) は、配列をフィルタリングして変更するための包括的な方法を提供します。 LINQ を使用して要素を削除する方法は次のとおりです:

<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2 };
int numToRemove = 4;
numbers = numbers.Where(val => val != numToRemove).ToArray();</code>
ログイン後にコピー

.NET Framework 2.0 の場合は、非 LINQ ループを使用することもできます。

<code class="language-csharp">static bool isNotFour(int n) { return n != 4; }

int[] numbers = { 1, 3, 4, 9, 2 };
numbers = Array.FindAll(numbers, isNotFour).ToArray();</code>
ログイン後にコピー

最初のインスタンスを削除

場合によっては、特定の要素の最初のインスタンスのみを削除する必要がある場合があります。この場合、LINQ コードまたは非 LINQ コードを次のように変更できます。

<code class="language-csharp">// LINQ
int numToRemove = 4;
int numIndex = Array.IndexOf(numbers, numToRemove);
numbers = numbers.Where((val, idx) => idx != numIndex).ToArray();

// 非LINQ
int numToRemove = 4;
int numIdx = Array.IndexOf(numbers, numToRemove);
List<int> tmp = new List<int>(numbers);
tmp.RemoveAt(numIdx);
numbers = tmp.ToArray();</code>
ログイン後にコピー

削除の代替手段

場合によっては、配列から要素を削除することが最適なオプションではない可能性があります。考慮すべき代替案をいくつか示します:

  • 要素の上書き: 特定の配列要素に新しい値を割り当て、既存の値を効果的に上書きできます。
  • リンク リストの使用: リンク リストを使用すると、リストを反復処理して必要な値を効率的に見つけることができるため、要素を削除するためのより柔軟な構造が提供されます。
  • 新しい配列の作成 : 削除する要素の数が多い場合は、既存の配列を変更するよりも、必要な要素を含む新しい配列を作成する方が効率的である場合があります。

以上がC# で配列から要素を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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