Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.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 where子句问题_C#_Linq_Where_Clause - Fatal编程技术网

C# Linq where子句问题

C# Linq where子句问题,c#,linq,where,clause,C#,Linq,Where,Clause,我想我在不久前的某个地方看到了一个where子句的例子,它调用了一个函数,该函数给出了一个bool结果,我再也找不到它了,所以我将概述我的问题 我有一个收藏 Dictionary< string, KeyValuePair < int, int >> Dictionary 我想在其中查询字符串键。表面上这很简单,但不幸的是字符串(我无法控制)是网格单元的编码坐标 该查询用于检索属于网格特定部分的条目(作为字典的类型)。放置函数调用单元格。其中(c=>isWithi

我想我在不久前的某个地方看到了一个
where
子句的例子,它调用了一个函数,该函数给出了一个
bool
结果,我再也找不到它了,所以我将概述我的问题

我有一个收藏

Dictionary< string, KeyValuePair < int, int >>  
Dictionary>
我想在其中查询
字符串
键。表面上这很简单,但不幸的是字符串(我无法控制)是网格单元的编码坐标

该查询用于检索属于网格特定部分的条目(作为
字典的类型)。放置函数调用
单元格。其中(c=>isWithinArea(c.Key,area))
编译但不起作用。该函数从未被调用


我欢迎任何建议,以尽量减少麻烦。

函数从未被调用的最可能的原因是,如果您正在“where-ing”的序列没有元素,或者您根本没有调用枚举器。LINQ是惰性计算的,这意味着在您开始
foreach
ToList()

之前,您提供的任何表达式都不会被实际调用,您必须发布代码。正如你所描述的,一切听起来都很好。“不起作用”-你必须描述它的作用,以及它与你想要它做的有什么不同。我猜是后者。接得好。是的,我打赌后者正是这里的问题+1.
cells.Keys.Where(key => isWithinArea(key, area))