将代码粘贴到另一个类并且它不起作用?

时间:2017-11-15 00:31:16

标签: c#

我有一段代码

string phoneMobileW = null;
string phoneMobileP = null;
string phoneMain = null;
string phoneWork = null;
string phoneHome = null;

if (coreData.ListOfAddress_0006 != null && coreData.ListOfAddress_0006.Count() > 0)
{
    var phoneqry = from list in coreData.ListOfAddress_0006
        .Where(a => a.Subtype.ID == "1")
        .OrderByDescending(a => a.StartDate)
        .Take(1)
        .Where(p => p.ListOfPhoneNumber_0006 != null)
        .SelectMany(p => p.ListOfPhoneNumber_0006)
        select list;

    if (phoneqry != null)
    {
        var phoneList = phoneqry.ToList();
        phoneMobileW = phoneList
            .Where(q => q.NumberType.ID == "MOBW")
            .Select(q => q.Number)
            .LastOrDefault();
    }
}

电话号码包含在地址内。如果地址不为空,请获取最后一个电话号码。但是我已经将这段代码应用并粘贴到另一个类上,它的工作时间更长。 enter image description here

所以它的工作原理你可以看到' var' for phoneqry是接口System.Collections.Generic.Ienumerable

正如我所说,我已将其复制到另一个单元测试类的类中。 我正在尝试填充电话号码。

当我将光标放在var上时,似乎没有任何东西显示它是什么对象(这是因为它在unitTest类中吗?)

无论如何,我得到的错误是。var phoneqry = from list in coreData.ListOfAddress_0006.Where

  

错误4' System.Array'不包含' Where'的定义并没有延伸方法'其中'接受类型' System.Array'的第一个参数。可以找到(您是否缺少using指令或程序集引用?)D:\ MartinsCode \ New folder \ Trunk \ BusinessLogic \ SapEai.UnitTest \ AdUnitTest.cs 166 73 RFS.BusinessLogic.SapEai.UnitTest

1 个答案:

答案 0 :(得分:3)

Where是Linq扩展方法,您需要在文件顶部添加此方法:

using System.Linq;

或者,您可以点击Where并按Ctrl +。在键盘上,它将提示您包含System.Linq命名空间的使用。

有关扩展方法的详细信息,请参阅here