所以我使用LINQ来计算一个字符串并使用Regex库来解析一个数字的字符串或任何其他字符返回0.如果我交换逻辑,它应该仍然可以工作,但它不会#39 ; t ...下面是两个场景的一个例子。
这个例子允许我的测试通过。
return Regex.Split(number, @"[^\d-]")
.Select(d => Regex.IsMatch(d, @"[\d-]") ? int.Parse(d.TrimEnd('-')) : 0)
.Where(d => d <= 1000).ToList();
逻辑交换,它应该仍然通过,但导致我的几个测试失败...
return Regex.Split(number, @"[^\d-]")
.Select(d => Regex.IsMatch(d, @"[^\d-]") ? 0 : int.Parse(d.TrimEnd('-')))
.Where(d => d <= 1000).ToList();
答案 0 :(得分:4)
问题是您实际上并没有在第二行代码中交换逻辑。要完全交换逻辑,您需要否定List<KeyValuePair<string, string>>
语句,如下所示:
if
在return Regex.Split(number, @"[^\d-]")
.Select(d => !Regex.IsMatch(d, @"[^\d-]") ? 0 : int.Parse(d.TrimEnd('-')))
.Where(d => d <= 1000).ToList();
之前添加!
将为您提供所有非有效数字并返回0的值。