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))