C# 配列を使用する場合、特定の要素を削除する必要がある状況が発生することがあります。この記事では、これを効果的に行う方法について詳しく説明します。
配列から要素を削除するには、まず要素を正確に識別する必要があります。残念ながら、配列は「名前」による要素の取得をネイティブにサポートしていません。ただし、他の手法を使用して、目的の値を正確に指定することもできます。
ターゲット フレームワークが .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 サイトの他の関連記事を参照してください。