我想检查List<Tuple<T, T>>
是否为空。使用these技术检查List<string>
是否为空,我注意到其中一项检查在我的情况下不起作用:
List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>();
//not working
if(intermediateResult!= null)
Console.WriteLine("not empty");
else
Console.WriteLine("empty");
//working
if(intermediateResult.Any())
Console.WriteLine("not empty");
else
Console.WriteLine("empty");
有人能说出第一张支票无效吗?
答案 0 :(得分:1)
不工作部分的解释: -
它不起作用,因为你是像这样的
你的集合List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>();
当你像这样初始化时,intermediateResult不为null。这是真的。
答案 1 :(得分:1)
使用该行检查列表是否已分配。所以你正在检查新命令的正确行为。 空列表仍然在内存中有一个地址。
答案 2 :(得分:0)
这行代码
List<Tuple<byte, string>> intermediateResult = new List<Tuple<byte, string>>();
创建List<Tuple<byte, string>>
的新实例并将其分配给intermediateResult
- 所以显然intermediateResult
在执行此行后不为空。