LINQ(Language Integrated Query)を使用してデータをクエリする場合、結果は通常、匿名型として返されます。しかし、特定の型に結果を変換する必要がある場合もあります。以下に、LINQクエリの結果を特定の型に変換するいくつかの方法を示します。
-
クエリ結果を型変換する方法: LINQクエリの実行結果を特定の型に変換するには、
Cast<T>()
メソッドまたはOfType<T>()
メソッドを使用します。Cast<T>()
メソッドは、クエリの結果を指定した型にキャストしますが、キャストが失敗した場合はInvalidCastException
がスローされます。一方、OfType<T>()
メソッドは、指定した型にキャストできない要素を無視します。var queryResult = from item in collection select item; // Cast<T>()メソッドを使用して結果を型変換する例 var typedResult = queryResult.Cast<DesiredType>(); // OfType<T>()メソッドを使用して結果を型変換する例 var typedResult = queryResult.OfType<DesiredType>();
-
クエリ結果を新しい型にマップする方法: クエリ結果を新しい型にマップするには、
Select()
メソッドを使用して匿名型を作成するか、自分で新しい型を定義します。var queryResult = from item in collection select new { Property1 = item.Property1, Property2 = item.Property2 }; // 匿名型を新しい型に変換する例 var typedResult = queryResult.Select(x => new DesiredType { Property1 = x.Property1, Property2 = x.Property2 }); // 自分で新しい型を定義して結果をマップする例 var typedResult = queryResult.Select(x => new DesiredType { Property1 = x.Property1, Property2 = x.Property2 });
-
クエリ結果をキャストする方法: クエリ結果が特定の型のコレクションである場合、
ToList()
メソッドやToArray()
メソッドを使用して、結果を特定の型のリストや配列にキャストすることができます。var queryResult = from item in collection select item; // List<T>にキャストする例 var typedList = queryResult.ToList(); // T[]にキャストする例 var typedArray = queryResult.ToArray();
これらの方法を使って、LINQクエリの結果を特定の型に変換することができます。適切な方法は、使用するデータの形式や要件によって異なる場合があります。