这是我正在尝试做的简化版本:
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方法将不会返回有效值。我希望能够检查这种情况,但是我意识到我无法将结果与“ null”进行比较,因为KeyValuePair是一个结构。以下代码无效:
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已返回有效值?
1
您那里有一个错误,但我认为这是一个复制粘贴的事情:天不是列表,并且您不能在KeyValuePair上使用添加。
—
Kobi
糟糕...您是正确的,我是从内存中键入内容,显然我犯了一个错误。感谢您指出。
—
desautelsj
可能是:var days = new Dictionary <int,string>();
—
甚至Mien