Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 奇怪的Linq问题_C#_.net_Linq - Fatal编程技术网

C# 奇怪的Linq问题

C# 奇怪的Linq问题,c#,.net,linq,C#,.net,Linq,下面两个有什么区别?第一个1有效,但第二个1出错,说明找不到“Select”。我不明白为什么 第一: 第二: select与IEnumerable一起使用,您尝试在FirstOrDefault 重写如下: Office Office = (from o in cHelper.Offices where o.IP3rdOctet == OSHelper.Get3rdOctetOfMyIP() select o).FirstOrDefa

下面两个有什么区别?第一个1有效,但第二个1出错,说明找不到“Select”。我不明白为什么

第一:

第二:


select
IEnumerable
一起使用,您尝试在
FirstOrDefault

重写如下:

Office Office = (from o in cHelper.Offices
                where o.IP3rdOctet == OSHelper.Get3rdOctetOfMyIP()
                select o).FirstOrDefault();

select
IEnumerable
一起使用,您尝试在
FirstOrDefault

重写如下:

Office Office = (from o in cHelper.Offices
                where o.IP3rdOctet == OSHelper.Get3rdOctetOfMyIP()
                select o).FirstOrDefault();

这不是一个
IEnumerable
IQueryable
,它是
Office
的一个实例:

cHelper.Offices.Where(o => o.IP3rdOctet 
                == OSHelper.Get3rdOctetOfMyIP()).FirstOrDefault()
你不能在那上面调用
select
。删除对
FirstOrDefault()
的调用,然后您将能够选择结果(如果没有与您的条件匹配的项目,则结果将为空)

如果仍然需要
FirstOrDefault
项,则将查询放在括号中,并像下面这样附加
FirstOrDefault()

Office Office = (from o in cHelper.Offices
                 where o.IP3rdOctet == OSHelper.Get3rdOctetOfMyIP()
                 select o).FirstOrDefault();

这不是一个
IEnumerable
IQueryable
,它是
Office
的一个实例:

cHelper.Offices.Where(o => o.IP3rdOctet 
                == OSHelper.Get3rdOctetOfMyIP()).FirstOrDefault()
你不能在那上面调用
select
。删除对
FirstOrDefault()
的调用,然后您将能够选择结果(如果没有与您的条件匹配的项目,则结果将为空)

如果仍然需要
FirstOrDefault
项,则将查询放在括号中,并像下面这样附加
FirstOrDefault()

Office Office = (from o in cHelper.Offices
                 where o.IP3rdOctet == OSHelper.Get3rdOctetOfMyIP()
                 select o).FirstOrDefault();

不确定为什么在已经获得firstordefault的情况下执行from/select。不确定为什么混合使用不同的样式(查询语法和扩展方法语法)这两个概念都使用List为我编译@Spacebison:尝试使用列表,它不会工作。我认为这是调用方法参数的正常推理类型?@SpaceBison字符串可以作为字符集合进行查询。不能查询办公室-办公室可能有集合,但它不是集合。因此,无法解析对Select的调用(既不是可枚举的。Select也不是可查询的。Select apply,office也没有实现Select本身)。不确定在已经获得firstordefault的情况下为什么要执行from/Select。不确定为什么要混合不同的样式(查询语法与扩展方法语法)这两个概念为我编译使用列表@Spacebison:尝试使用列表,它不会工作。我认为这是调用方法参数的正常推理类型?@SpaceBison字符串可以作为字符集合进行查询。不能查询办公室-办公室可能有集合,但它不是集合。因此,无法解析对Select的调用(既不可枚举。Select也不可查询。Select apply,office未实现Select本身)。