【发布时间】:2012-08-10 14:09:15
【问题描述】:
我有以下方法:
public static List<string> GetArgsListStartsWith(string filter, bool invertSelection, bool lowercaseArgs)
{
return GetArgumentsList(lowercaseArgs)
.Where(x => !invertSelection && x.StartsWith(filter)).ToList();
}
然后我这样称呼它GetArgsListStartsWith("/", true, false)
这将转化为:获取所有不以“/”开头的参数的列表。 问题是列表没有被填充,即使所有参数都不以“/”开头。
如果我调用GetArgsListStartsWith("/", false, false),它转换为:获取所有以“/”开头的参数的列表,该列表会填充以“/”开头的参数。
我怀疑invertSelection 设置为true 并且x.StartsWith(filter) 返回false 时!invertSelection && x.StartsWith(filter) 不会返回true,但我不明白为什么。有人看到我看不到的东西吗?
【问题讨论】:
-
有 invertSelection = false 你说 GetArgumentsList(lowercaseArgs).Where(x => false && someBoolValue) 总是假的
-
是的...当我认为 false && false 返回 true 时,我不知道我在想什么。我应该休息一下。谢谢!
标签: c# linq conditional-statements where