Wie lässt sich feststellen, ob ein Objekt vom Typ IEnumerable <T> ist?
Code:
namespace NS {
class Program {
static IEnumerable<int> GetInts() {
yield return 1;
}
static void Main() {
var i = GetInts();
var type = i.GetType();
Console.WriteLine(type.ToString());
}
}
}
Ausgabe:
NS.1.Program+<GetInts>d__0
Wenn ich GetInts so ändere, dass es IList zurückgibt, ist alles in Ordnung die Ausgabe ist:
System.Collections.Generic.List`1[System.Int32]
Und das Ergebnis ist falsch:
namespace NS {
class Program {
static IEnumerable<int> GetInts() {
yield return 1;
}
static void Main() {
var i = GetInts();
var type = i.GetType();
Console.WriteLine(type.Equals(typeof(IEnumerable<int>)));
}
}
}