【发布时间】:2009-11-06 16:40:55
【问题描述】:
我有一个 FormCollection,我只想遍历不包含字符串定价的键。
所以我尝试的是这个......
foreach (var key in collection.AllKeys.Where(k => !k.Contains("Pricing"))){ ... }
问题是返回的不是过滤列表,它返回的布尔值...其中需要过滤的字符串列表...
AllKeys 返回一个字符串[],所以从某种意义上说,我只是想在这里过滤一个字符串[]...
我在这里错过了什么......
非常感谢!
【问题讨论】:
-
这对我来说很好——不知道为什么你会得到一堆布尔值。您是否尝试过检查 var 以查看它是什么类型?
-
@JustLoren,
foreach循环中声明的key变量是string类型,因为Where扩展方法返回IEnumerable<string>,所以你指出它是正确的无法从此代码中获取布尔值。 -
@gmcalab,
string.Contains(string)方法区分大小写。这可能是问题吗? -
使用上面的语法 var 是一个布尔值。因此,它不返回 IEnumerable
并且 key 现在不是字符串,它是布尔值。如果你说它应该返回具有上述语法的字符串,那么 VS2008 在这里执行了一些古怪的魔法。我在下面发布了解决方案。