if检查整型数组是否为空

本文关键字:是否 数组 检查 整型 if | 更新日期: 2023-09-27 18:17:17

我有以下代码行,根据命令列表项,它应该进入if块,但它没有去那里。在调试模式下,int[] ckeys只显示{int[0]},没有任何值,你能告诉我是什么问题吗?

List<string> Command=new List<string>();
string ASCLICAL = "Callers:";
string ASCLIMEM= "Members:";
string ASCLINOCAL="NoCallers";
int[] ckeys = Command.Select((s, idx) => new { Str = s, Idx = idx })
                    .Where(p => p.Str == ASCLICAL)
                    .Select(p => p.Idx)
                    .ToArray();
if(ckeys == null) {
                    ckeys = Command.Select((s, idx) => new { Str = s, Idx = idx })
                            .Where(p => p.Str == ASCLINOCAL)
                            .Select(p => p.Idx)
                            .ToArray();
            }

命令列表包含:

[0] = "300 has 0 calls (max unlimited) in 'ringall' strategy (173s holdtime), W:0, C:1, A:0, SL:0.0% within 0s"
[1] = "Members:"
[2] = "Local/409@from-internal/n (In use) has taken 1 calls (last was 64167 secs ago)"
[3] = "No Callers"
[4] = ""

if检查整型数组是否为空

它永远不会为空。如果数组不包含元素,那么它将始终是一个包含0个元素的数组。

您可以使用Array.LengthArray.Count并检查大小是否> 0

   if (ckeys.Length == 0) {
   }

ckeys不是null,它是空的。您应该将ckeys == null更改为ckeys.Length == 0