这里是什么,我试图做一个简化版本:我怎样才能确保FirstOrDefault <KeyValuePair>返回一个值
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”是不存在的KeyValuePair变量中, 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已返回一个有效的价值?
你有一个错误,但我认为这是一个复制粘贴的东西:天是不是一个列表,你不能使用KeyValuePair的添加。 – Kobi 2009-08-26 16:46:03
ooops ...你是对的我从记忆中打字,我明显犯了一个错误。感谢您指出。 – desautelsj 2009-08-30 04:39:01
这可能是:var days = new字典(); –
2010-08-03 18:35:31