“不包含定义......并且没有扩展方法..”错误

时间:2011-08-24 15:31:33

标签: c# .net wpf compiler-errors

我有以下错误消息:

'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,我发现this问题似乎与我有类似(如果不相同)的问题。但是,我尝试了接受的答案中提供的解决方案,但仍然没有提出任何建议。它表现得像我错过了一个使用声明,但我几乎是积极的,我有我需要的所有使用。

以下是产生错误的一些代码:

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 个答案:

答案 0 :(得分:5)

问题出在这一部分:cart.biffcart类型为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;
}

答案 1 :(得分:3)

您需要访问给定键的字典值。这些方面的东西。

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