2017-03-19 22 views
0

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)是給我當testExceptions不包含關鍵y.Cell異常。但自從我檢查ContainsKey我預計它不會評估最後一個條件。有沒有什麼辦法避免異常,而不使用長的if/else陳述?

+2

要檢查,如果它不'Contains',刪除''。 –

+1

你也可以使用?如果存在空值則不失敗。它會返回false。例如。 !testExceptions [index] [y.Cell] ?.包含(y.ID),因此contains(y.Id)將不是必需的。 –

+0

啊,我怎麼會想念那個。在週末工作是邪惡的...... – Pablo

回答

5

您正在檢查它是否不包含包含密鑰。你需要檢查它是否確實包括鍵:

testExceptions[index].ContainsKey(y.Cell) && ... use the key ... 
相關問題