gpt4 book ai didi

c# - 如果交换逻辑,具有三元运算的 LINQ 运算会导致测试失败

转载 作者:太空宇宙 更新时间:2023-11-03 20:59:56 25 4
gpt4 key购买 nike

所以我使用 LINQ 来评估字符串并使用 Regex 库来解析数字字符串或任何其他字符返回 0。如果我交换逻辑,它应该仍然可以以任何一种方式工作,但它不... 下面是这两种情况的示例。

This example is the one that allows for my tests to pass.

return Regex.Split(number, @"[^\d-]")
.Select(d => Regex.IsMatch(d, @"[\d-]") ? int.Parse(d.TrimEnd('-')) : 0)
.Where(d => d <= 1000).ToList();

Logic swapped, it should pass still, but causes a couple of my tests to fail...

return Regex.Split(number, @"[^\d-]")
.Select(d => Regex.IsMatch(d, @"[^\d-]") ? 0 : int.Parse(d.TrimEnd('-')))
.Where(d => d <= 1000).ToList();

最佳答案

问题是您实际上并没有在第二行代码中交换逻辑。要完全交换逻辑,您需要像这样否定 if 语句:

return Regex.Split(number, @"[^\d-]")
.Select(d => !Regex.IsMatch(d, @"[^\d-]") ? 0 : int.Parse(d.TrimEnd('-')))
.Where(d => d <= 1000).ToList();

Regex.IsMatch(d, @"[^\d-]")) 之前添加 ! 将为您提供所有非有效数字并返回值为 0。

关于c# - 如果交换逻辑,具有三元运算的 LINQ 运算会导致测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46489530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com