ホームページ > バックエンド開発 > C++ > LINQ の Cast() と OfType(): 型安全のためにどちらを使用する場合?

LINQ の Cast() と OfType(): 型安全のためにどちらを使用する場合?

Patricia Arquette
リリース: 2025-01-17 04:37:09
オリジナル
636 人が閲覧しました

Cast() vs. OfType() in LINQ: When to Use Which for Type Safety?

LINQ 型変換における Cast() と OfType() の違い

LINQ を使用して ArrayList と型変換を処理する場合、2 つのメソッド Cast()OfType() が特に重要です。それらの違いを理解することは、型を効果的に処理するために重要です。

Cast() と OfType() の比較

Cast()

  • ArrayList 内のすべての要素を指定された型に変換しようとします。
  • 要素が正常に変換できない場合、InvalidCastException 例外が発生します。

OfType()

  • 指定された型に安全に変換できる要素のみを選択します。
  • 変換できない要素を無視し、効果的に除外します。

使用方法

  • Cast(): ArrayList 内のすべての要素を必要な型に変換できることが確実な場合は、このメソッドを使用します。このアプローチは効率的ですが、データが有効であることが前提となります。
  • OfType(): 必要な型に変換できない要素をフィルターで除外する必要がある場合は、このメソッドを使用します。これにより、無効な変換による潜在的な例外を防ぐ安全な方法が提供されます。

オブジェクトの配列を考えてみましょう:

<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
ログイン後にコピー

Cast() を使用してこの配列を変換します:

<code class="language-csharp">objs.Cast<string>().ToArray();</code>
ログイン後にコピー
要素「12」は文字列に変換できないため、

InvalidCastException 例外を引き起こします。

OfType() を使用して変換します:

<code class="language-csharp">objs.OfType<string>().ToArray();</code>
ログイン後にコピー

は要素を 1 つだけ含む配列を生成します:

<code class="language-csharp">{ "12345" }</code>
ログイン後にコピー

これは、OfType() が安全に変換できない要素を効果的に除外する方法を示しています。

以上がLINQ の Cast() と OfType(): 型安全のためにどちらを使用する場合?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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