LINQ での型変換: Cast() メソッドと OfType() メソッドの詳細な説明
LINQ (統合言語クエリ) は、開発者が使い慣れた構文を使用してデータのクエリと変換を行うことができる .NET フレームワークの強力なツールです。 ArrayList 内の要素を IEnumerable
Cast() メソッド
Cast() メソッドは、ArrayList 内のすべての要素を指定された型に明示的に変換するために使用されます。実際の型に関係なく、各要素をターゲットの型にキャストしようとします。いずれかの要素のキャストに失敗した場合は、InvalidCastException がスローされます。
OfType() メソッド
OfType() メソッドは、安全にターゲットの型に変換できる要素のみを選択的に変換します。指定された型に一致する要素のみを含む IEnumerable
Cast() メソッドと OfType() メソッドに適用可能なシナリオ
Cast() または OfType() の選択は、特定のニーズによって異なります。
Cast() の使用:
OfType() の使用:
例
文字列と整数を含む ArrayList があるとします。
<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Cast() を使用します:
<code class="language-csharp"> try { string[] strArr = objs.Cast<string>().ToArray(); } catch (InvalidCastException) { // 处理异常 }</code>
この場合、Cast() は両方の要素を文字列に変換しようとします。そのうちの 1 つは整数であるため、InvalidCastException がスローされます。
Type() の使用:
<code class="language-csharp"> string[] strArr = objs.OfType<string>().ToArray(); // 只包含 "12345"</code>
OfType() は ArrayList から文字列要素を正常に取得し、整数要素を除外します。
Cast() と OfType() の違いを理解することで、LINQ の使用時に型を効果的に変換し、データをフィルター処理して、クエリの精度と信頼性を確保できます。
以上がLINQ の Cast() と OfType(): 型変換にそれぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。