データ操作

[C#] オブジェクトがList型かどうか判定する

2023年10月2日

オブジェクトが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など)で判定が少し変わりますので、用途に合わせて使い分けてください。

関連記事

-データ操作
-