【问题标题】:How to loop through the number at each index in byte array?如何遍历字节数组中每个索引处的数字?
【发布时间】:2015-10-27 23:51:33
【问题描述】:

我正在编写一个程序来将 xml 解析为字节数组,并且需要检查字节数组中某些索引处的数值。

例如,如果99 是数组中的一个整数,它应该向控制台写入一条错误消息,99901 也是如此。

到目前为止,我尝试的是使用 for each 循环,但 if..else 条件检查的是 索引号,而不是关联的 整数数组中的每个索引。

有谁知道我如何循环遍历与每个索引关联的整数值? (如下图所示)

这是我迄今为止尝试过的,但循环似乎正在检查索引值,而不是与索引关联的整数值,从而给出错误的结果:

private static byte[] requestBytes;

foreach(char i in requestBytes)
{
    if (i == 99)
    {
        Console.WriteLine("Sending Failure..");
    }
    else if(i == 999)
    {
        Console.WriteLine("Message Failure..");
    }
    else if (i == 01)
    {
        Console.WriteLine("Sending Success..");
    }

}

如图所示,每个索引都有一个关联的整数值,我想在循环中检查它。

【问题讨论】:

  • 为什么你的循环变量是char而不是byte
  • arr[i] 与常规 for 循环
  • 999怎么可能是字节数组元素中的值?

标签: c# arrays foreach


【解决方案1】:

你可以试试 for 循环

for(int i = 0; i < requestBytes.Length; i++)
                {
                    var v = requestBytes[i];
                    if (v == 99)
                    {
                        Console.WriteLine("Sending Failure..");
                    }
                    else if(v == 999)
                    {
                        Console.WriteLine("Message Failure..");
                    }
                    else if (v == 01)
                    {
                        Console.WriteLine("Sending Success..");
                    }

                }

【讨论】:

  • 好吧,我会尝试那个解决方案,上面有一个小错字……应该是 for,而不是 foreach。
  • 是的,对不起,我的错误,我困了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
相关资源
最近更新 更多