Debugging some code I came across an "is IEnumerable" comparison, which confusingly evaluates to false in code but true in the Immediate Window.
I wonder if anyone can shed light to why this would happen?
Example:
public enum Fruit
{
Apples,
Strawberries
}
public void SomeMethod()
{
object myObj = new Fruit[] { Fruit.Apples, Fruit.Strawberries };
bool isListOfEnums = myObj is IEnumerable<Fruit>; // True
isListOfEnums = myObj is IEnumerable<Enum>; // False in code, but True in Immediate Window when debugged
}
(Immediate Window)
? myObj is IEnumerable<Enum>
true