Попытка распаковать объект в IEnumerable, get IEnumerable является «типом», но используется как «переменная» ошибка - PullRequest
2 голосов
/ 02 апреля 2012

Я хочу распаковать объект в IEnumerable.Я проверяю, что если объекту можно присвоить IEnumerable, а затем, если это так, я хочу просмотреть значения в объекте.Однако, когда я делаю следующее:

if (typeof(IEnumerable<IRecord>).IsAssignableFrom(propertyValue.GetType()))
{
    foreach (var property in IEnumerable<IRecord>(propertyValue))
    {
        var test = property;
    }
}

, IEnumerable выдает следующую ошибку:

Error   1   'System.Collections.Generic.IEnumerable<test.Database.IRecord>' is a 'type' but is used like a 'variable'   D:\test.Test\ElectronicSignatureRepositoryTest.cs   397 46  test.Test

Как я могу присвоить propertyValue для IEnumerable?

1 Ответ

5 голосов
/ 02 апреля 2012

Вы хотите:

if (typeof(IEnumerable<IRecord>).IsAssignableFrom(propertyValue.GetType()))
{
    foreach (var property in (IEnumerable<IRecord>)propertyValue)
    {
        var test = property;
    }
}

Вы также можете сделать:

var enumerable = propertyValue as IEnumerable<IRecord>;
if (enumerable != null)
{
    foreach (var property in enumerable)
    {
        var test = property;
    }
}
...