相关疑难解决方法(0)

KeyValuePair的默认值

我有一个类型的对象IEnumerable<KeyValuePair<T,U>> keyValueList,我正在使用

 var getResult= keyValueList.SingleOrDefault();
 if(getResult==/*default */)
 {
 }
 else
 {
 } 
Run Code Online (Sandbox Code Playgroud)

getResult如果我找不到正确的元素,我如何检查是否是默认值?

我无法检查它是否是null因为KeyValuePair是一个结构.

c# key-value

374
推荐指数
8
解决办法
14万
查看次数

如何确保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));
Run Code Online (Sandbox Code Playgroud)

由于KeyValuePair变量中不存在'xyz',因此FirstOrDefault方法不会返回有效值.我希望能够检查这种情况,但我意识到我无法将结果与"null"进行比较,因为KeyValuePair是一个结构.以下代码无效:

if (day == null) {
    System.Diagnotics.Debug.Write("Couldn't find day of week");
}
Run Code Online (Sandbox Code Playgroud)

我们尝试编译代码,Visual Studio会抛出以下错误:

Operator '==' cannot be applied to operands of type 'System.Collections.Generic.KeyValuePair<int,string>' and '<null>'
Run Code Online (Sandbox Code Playgroud)

如何检查FirstOrDefault是否返回了有效值?

c# linq

83
推荐指数
2
解决办法
3万
查看次数

如何将对象与null进行比较?

我在一个KeyValuePair方法上有一个'可选'参数.我想要一个将null传递给此参数的核心方法的重载,但是在核心方法中,当我想检查KeyValuePair是否为null时,我收到以下错误:

Operator '!=' cannot be applied to operands of type System.Collections.Generic.KeyValuePair<string,object>' and '<null>. 
Run Code Online (Sandbox Code Playgroud)

如何禁止检查对象是否为空?

.net c# generics

47
推荐指数
3
解决办法
2万
查看次数

标签 统计

c# ×3

.net ×1

generics ×1

key-value ×1

linq ×1