LinqはC#で非常に便利なデータクエリングツールであり、OfTypeメソッドはその中でも特に役立つメソッドの一つです。OfTypeメソッドは、指定したデータ型に一致する要素のみを抽出するために使用されます。
以下に、OfTypeメソッドの使い方といくつかのコード例を説明します。
- 基本的な使用法:
OfTypeメソッドは、IEnumerable
インターフェースを実装するコレクションに対して使用されます。例えば、整数のリストがある場合、その中から文字列だけを抽出したい場合にOfTypeメソッドを使用できます。
List<object> mixedList = new List<object> { 1, "two", 3, "four", 5 };
var stringsOnly = mixedList.OfType<string>();
foreach (var str in stringsOnly)
{
Console.WriteLine(str);
}
上記の例では、mixedListリストから文字列のみを抽出し、それをstringsOnly変数に格納しています。そして、foreachループを使用して抽出した文字列を表示しています。
- 継承関係のあるクラスのフィルタリング: OfTypeメソッドは、継承関係のあるクラスのコレクションでも使用できます。例えば、動物クラスとその派生クラスがある場合、特定の派生クラスのインスタンスのみを抽出することができます。
class Animal { }
class Dog : Animal { }
class Cat : Animal { }
List<Animal> animals = new List<Animal> { new Dog(), new Cat(), new Dog(), new Cat() };
var dogsOnly = animals.OfType<Dog>();
foreach (var dog in dogsOnly)
{
Console.WriteLine(dog.GetType().Name);
}
上記の例では、animalsリストからDogクラスのインスタンスのみを抽出し、それをdogsOnly変数に格納しています。そして、foreachループを使用して抽出したDogクラスのインスタンスの型名を表示しています。
OfTypeメソッドは、特定のデータ型に絞り込むための強力なツールです。是非、これらのコード例を参考にしてOfTypeメソッドを活用してみてください。