Образец кода:
using System.Collections.Generic;
...
// could return anything.
private object GetObject(int code)
{
object obj = null;
if (code == 10)
{
var list1 = new List<Tuple<int, string>>();
list1.Add(new Tuple<int, string>(2, "blah"));
obj = list1;
}
else if (code == 20)
{
obj = "hello";
}
else if (code == 30)
{
var list2 = new List<string>();
list2.Add("o");
obj = list2;
}
// else etc, etc.
return obj;
}
private bool DoAction(int code)
{
object obj = GetObject(code);
bool isListT = ???
return isListT;
}
В приведенном выше коде GetObject может возвращать объект любого типа. Внутри DoAction, после вызова GetObject, я хочу иметь возможность определить, является ли возвращаемый объект каким-либо типом System.Collections.Generic.List<T>
. Мне все равно (и я не знаю), что такое T. Таким образом, DoAction(10) и DoAction(30) должны возвращать true, а DoAction(20) возвращать false.
(obj is IList)
будет достаточно. - person Groo   schedule 17.05.2017System.Object
не реализуетIEnumerable
. - person Groo   schedule 17.05.2017