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

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

Susan Sarandon
Susan Sarandonオリジナル
2025-01-20 20:36:15675ブラウズ

How Can I Delete Elements from an Array in C#?

C# 配列から要素を効率的に削除する

C# 配列のサイズは本質的に固定です。要素を直接削除することはできません。 ただし、要素の削除を効果的にシミュレートする方法がいくつかあります。 最適なアプローチは、.NET Framework のバージョンと特定のニーズによって異なります。

LINQ の活用 (.NET Framework 3.5 以降の場合):

LINQ は、配列操作のための洗練されたソリューションを提供します。 特定の値の出現をすべて削除するには:

<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int valueToRemove = 4;
numbers = numbers.Where(num => num != valueToRemove).ToArray();</code>

最初の出現箇所のみを削除するには、少し異なるアプローチが必要です。

<code class="language-csharp">int indexToRemove = Array.IndexOf(numbers, valueToRemove);
numbers = numbers.Where((num, index) => index != indexToRemove).ToArray();</code>

非 LINQ メソッド (.NET Framework 2.0 以降の場合):

古い .NET フレームワークの場合は、従来の配列メソッドが必要です。 1 つの手法では、カスタム述語関数を使用します。

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

int[] numbers = { 1, 3, 4, 9, 2, 4 };
numbers = Array.FindAll(numbers, isNotFour).ToArray();</code>

または、配列を List<T> に変換し、要素を削除して、元に変換します。

<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 };
int valueToRemove = 4;
int indexToRemove = Array.IndexOf(numbers, valueToRemove);
List<int> tempList = new List<int>(numbers);
tempList.RemoveAt(indexToRemove);
numbers = tempList.ToArray();</code>

重要な考慮事項: 例外を防ぐため、削除を試みる前に、Array.IndexOf を使用して配列内の要素の存在を必ず確認してください。 一般に、LINQ を使用すると、より簡潔で読みやすいコードが提供されますが、非 LINQ メソッドは古いフレームワークとの互換性を提供します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。