LINQ の型変換メソッド: Cast() と OfType() の比較
型変換に LINQ を使用する場合、Cast()
と OfType()
という 2 つの主なメソッドが使用されます。効率的なデータ操作には、これら 2 つのアプローチの微妙な違いを理解することが重要です。
Cast() メソッド
Cast()
メソッドは、IEnumerable
内の各要素を指定されたターゲット型に変換しようとします。フィルタリング操作は実行されず、単にすべての要素の変換が試行されます。一部の要素が正常に変換できない場合、InvalidCastException
例外が発生する可能性があります。
OfType() メソッド
OfType()
メソッドは、要素を変換する前に、その型に基づいて要素をフィルタリングします。ターゲットの型に安全に変換できる要素のみを含む IEnumerable
を返します。
使用シナリオ
各メソッドをいつ使用するかは、目的の動作によって異なります。
Cast() を使用する場合:
OfType() を使用する場合:
説明例
次の例を考えてみましょう:
<code class="language-csharp">object[] objs = new object[] { "12345", 12 }; IEnumerable<string> castCollection = objs.Cast<string>().ToArray(); // 抛出 InvalidCastException 异常 IEnumerable<string> ofTypeCollection = objs.OfType<string>().ToArray(); // 返回 { "12345" }</code>
この例では、Cast()
はすべての要素を変換しようとするため、InvalidCastException
例外が発生します。ただし、OfType()
は整数要素をフィルターで除外し、「12345」のみを返します。
概要
Cast()
と OfType()
の違いを理解することで、開発者は LINQ クエリでより的を絞った効率的な型変換操作を実行でき、その結果、より明確で堅牢なコードが得られます。
以上がLINQ キャスト: Cast() と OfType() をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。