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