オブジェクトがList型かどうか判定するサンプルです。
サンプル(要素が参照型の場合)
例1)オブジェクトがList型かどうか判定する
//List<string>型を生成
var obj = new List<string>() { "みかん", "りんご", "ぶどう" };
//判定
var em = obj as IEnumerable<object>;
if (em != null)
{
Console.WriteLine("objはList型です");
}
else
{
Console.WriteLine("objはList型ではありません");
}
結果
objはList型です
Listの要素を取得するには以下のように取得できます。
var em = obj as IEnumerable<object>;
if (em != null)
{
foreach (var item in em)
{
Console.WriteLine(item);
}
}
結果
みかん
りんご
ぶどう
サンプル(要素がint型の場合)
要素がプリミティブ型の場合です。
byte、short、long、float、double、char等の場合は読み替えてください。
例2)オブジェクトがList<int>型かどうか判定する
//List<int>型を生成
var obj = new List<int>() { 1, 2, 3 };
//判定
var em = obj as IEnumerable<int>;
if (em != null)
{
Console.WriteLine("objはList型です");
}
else
{
Console.WriteLine("objはList型ではありません");
}
結果
objはList型です
Listの要素を取得するには以下のように取得できます。
var em = obj as IEnumerable<int>;
if (em != null)
{
foreach (var item in em)
{
Console.WriteLine(item);
}
}
結果
1
2
3
備考
- オブジェクトがList型か判定するには、オブジェクトをIEnumerable<T>に変換できるかどうかで判定できます。
- Listの要素が参照型かプリミティブ型(intやdoubleなど)で判定が少し変わりますので、用途に合わせて使い分けてください。