ошибка "не содержит определения ... и метода расширения ..." - PullRequest
4 голосов
/ 24 августа 2011

У меня следующее сообщение об ошибке:

'System.Collections.Generic.Dictionary<int,SpoofClass>' does not
contain a definition for 'biff' and no extension method 'biff'
accepting a first argument of type
'System.Collections.Generic.Dictionary<int,SpoofClass>' could be found
(are you missing a using directive or an assembly reference?)

Я проверил SO для этого и нашел этот вопрос, который, казалось, имел аналогичную (если не идентичную) проблему, как у меня. Тем не менее, я попробовал решение, представленное в принятом ответе, и оно до сих пор ничего не дает. Он действует так, как будто мне не хватает оператора использования, но я почти уверен, что у меня есть все необходимые использования.

Вот часть кода, который выдает ошибки:

using locationOfSpoofClass;
...

Dictionary<int, SpoofClass> cart = new Dictionary<int, SpoofClass>();
foreach (var item in dbContext.DBView)
{
    cart.biff = item.biff;
    ...
}

Файл SpoofClass:

namespace locationOfSpoofClass
{
    public class SpoofClass
    {
        public int biff { get; set; }
        ...
    }
}

Извините, если мое переименование переменных и еще много чего сбивает с толку. Если это нечитаемо, или слишком трудно следовать, или если другая информация имеет отношение к решению, пожалуйста, дайте мне знать. Спасибо!

Ответы [ 2 ]

5 голосов
/ 24 августа 2011

Проблема в этой части: cart.biff.cart относится к типу Dictionary<int, SpoofClass>, а не к типу SpoofClass.

Я могу только догадываться, что вы пытаетесь сделать, но компилируется следующий код:

Dictionary<int, SpoofClass> cart = new Dictionary<int, SpoofClass>();
int i=0;
foreach (var item in dbContext.DBView)
{
    cart.Add(i, new SpoofClass { biff = item.biff });
    ++i;
}
3 голосов
/ 24 августа 2011

Вам необходимо получить доступ к значению словаря для данного ключа. Что-то в этом роде.

foreach(var item in dbContext.DBView)
{
    foreach(var key in cart.Keys)
    {
        cart[key].biff = item.biff;
    }
}
...