Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何处理哈希表空值?_C#_Asp.net - Fatal编程技术网

C# 如何处理哈希表空值?

C# 如何处理哈希表空值?,c#,asp.net,C#,Asp.net,检查哈希表值时出现问题。在下面的代码中,我将60个值存储在哈希表中。其中一个值为或可以为Null。我将每个条目与哈希表hash1中对应的条目进行检查,以查看它们是否相互匹配。如果它们不匹配,我想检查散列中的值是否为Null,但我无法捕获它-它正在通过'else'部分。我怎样才能克服这个问题 if (hash[j].ToString() == "") { NotAnswerQuestionCount++; } 我的代码: 测试hash1[i]!=在使用ToString之前为null。您可

检查哈希表值时出现问题。在下面的代码中,我将60个值存储在哈希表中。其中一个值为或可以为Null。我将每个条目与哈希表hash1中对应的条目进行检查,以查看它们是否相互匹配。如果它们不匹配,我想检查散列中的值是否为Null,但我无法捕获它-它正在通过'else'部分。我怎样才能克服这个问题

if (hash[j].ToString() == "")
{
    NotAnswerQuestionCount++;
}
我的代码:


测试hash1[i]!=在使用ToString之前为null。

您可以尝试使用ifstring.IsNullOrEmptyhash1[i]或在调用ToString之前检查null


我想你不是指空的,我想你是指空的。您正在检查“hash”的内容,它看起来像是从列表框中填充的,但是一个列表框项不能为空。此外,您还要检查它是否与空字符串匹配

您如何知道列表框中有一个空字符串?请在检查值之前尝试修剪该值,即如果哈希[j].ToString.Trim==捕捉空字符串以及仅包含空格的字符串。或者,输出每个ListBox项的内容以进行调试(用分隔符括起来),以检查您是否实际获得了,如下所示:

foreach (Object o in ResultsListBox.Items) {
  Debug.WriteLine("'" + o.ToString() + "'");
}

从C6及以后,您可以使用


如果要检查哈希对象是否为null或大小是否为零

我想你可以这样做

if (hash!= null || hash.Keys.Count==0) { blah }

谢谢。

我得到了上述问题的解决方案ifhash[j]。ToString==,这里的问题是,我们需要提到QuTo之间的一个空格。。
foreach (Object o in ResultsListBox.Items) {
  Debug.WriteLine("'" + o.ToString() + "'");
}
if (hash[i]?.ToString() == "") { ...
if (hash!= null || hash.Keys.Count==0) { blah }