다음은 내가하려는 작업의 단순화 된 버전입니다.
var days = new Dictionary<int, string>();
days.Add(1, "Monday");
days.Add(2, "Tuesday");
...
days.Add(7, "Sunday");
var sampleText = "My favorite day of the week is 'xyz'";
var day = days.FirstOrDefault(x => sampleText.Contains(x.Value));
사전에 'xyz'가 없기 때문에 FirstOrDefault 메서드는 유효한 값을 반환하지 않습니다. 이 상황을 확인하고 싶지만 KeyValuePair가 구조이기 때문에 결과를 "null"과 비교할 수 없다는 것을 알고 있습니다. 다음 코드는 유효하지 않습니다.
if (day == null) {
System.Diagnotics.Debug.Write("Couldn't find day of week");
}
코드를 컴파일하려고하면 Visual Studio에서 다음 오류가 발생합니다.
Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
FirstOrDefault가 유효한 값을 반환했는지 어떻게 확인할 수 있습니까?