C# で配列から要素を削除するにはどうすればよいですか?
Jan 20, 2025 pm 08:46 PMC# で配列要素を削除する
C# 配列を使用する場合、特定の要素を削除する必要がある状況が発生することがあります。この記事では、これを効果的に行う方法について詳しく説明します。
削除する要素を決定する
配列から要素を削除するには、まず要素を正確に識別する必要があります。残念ながら、配列は「名前」による要素の取得をネイティブにサポートしていません。ただし、他の手法を使用して、目的の値を正確に指定することもできます。
LINQ とループの使用
ターゲット フレームワークが .NET Framework 3.5 以降の場合、LINQ (統合言語クエリ) は、配列をフィルタリングして変更するための包括的な方法を提供します。 LINQ を使用して要素を削除する方法は次のとおりです:
int[] numbers = { 1, 3, 4, 9, 2 }; int numToRemove = 4; numbers = numbers.Where(val => val != numToRemove).ToArray();
ログイン後にコピー
.NET Framework 2.0 の場合は、非 LINQ ループを使用することもできます。
static bool isNotFour(int n) { return n != 4; } int[] numbers = { 1, 3, 4, 9, 2 }; numbers = Array.FindAll(numbers, isNotFour).ToArray();
ログイン後にコピー
最初のインスタンスを削除
場合によっては、特定の要素の最初のインスタンスのみを削除する必要がある場合があります。この場合、LINQ コードまたは非 LINQ コードを次のように変更できます。
// 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();
ログイン後にコピー
削除の代替手段
場合によっては、配列から要素を削除することが最適なオプションではない可能性があります。考慮すべき代替案をいくつか示します:
- 要素の上書き: 特定の配列要素に新しい値を割り当て、既存の値を効果的に上書きできます。
- リンク リストの使用: リンク リストを使用すると、リストを反復処理して必要な値を効率的に見つけることができるため、要素を削除するためのより柔軟な構造が提供されます。
- 新しい配列の作成 : 削除する要素の数が多い場合は、既存の配列を変更するよりも、必要な要素を含む新しい配列を作成する方が効率的である場合があります。
以上がC# で配列から要素を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7281
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1341
46


Laravel チュートリアル
1258
25


PHP チュートリアル
1205
29



C言語関数によって返される値の種類は何ですか?返品値を決定するものは何ですか?

STL(ソート、検索、変換など)のアルゴリズムを効率的に使用するにはどうすればよいですか?
