LINQ 型変換における Cast() と OfType() の違い
LINQ を使用して ArrayList と型変換を処理する場合、2 つのメソッド Cast()
と OfType()
が特に重要です。それらの違いを理解することは、型を効果的に処理するために重要です。
Cast() と OfType() の比較
Cast()
:
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 サイトの他の関連記事を参照してください。