为什么逻辑评估不会在拳头"false"结果上停止?



testExceptions是字典。

var testConfigurations = cells.SelectMany(x => x.TestConfigurations).Where(
   y => y.ID == testId && 
   !testExceptions[index].ContainsKey(y.Cell) && 
   !testExceptions[index][y.Cell].Contains(y.ID)
).ToList();

!testExceptions[index][y.Cell].Contains(y.ID)在不包含密钥y.Cell时给我一个例外testExceptions。但是由于我正在检查ContainsKey我希望它不会评估最后一个条件。有没有办法在不使用长if/else语句的情况下避免异常?

您正在检查它是否不包含密钥。您需要检查它是否包含密钥:

testExceptions[index].ContainsKey(y.Cell) && ... use the key ...

最新更新