我有一段代码
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();
}
}
电话号码包含在地址内。如果地址不为空,请获取最后一个电话号码。但是我已经将这段代码应用并粘贴到另一个类上,它的工作时间更长。
所以它的工作原理你可以看到' 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
答案 0 :(得分:3)
Where
是Linq扩展方法,您需要在文件顶部添加此方法:
using System.Linq;
或者,您可以点击Where
并按Ctrl +。在键盘上,它将提示您包含System.Linq命名空间的使用。
有关扩展方法的详细信息,请参阅here。