13

我试图弄清楚这些消息包含哪些通过 OSC 流式传输的信息。消息被存储到一个 ArrayList。这是代码:

public void OSCMessageReceived(OSC.NET.OSCMessage message){ 
        string address = message.Address;
        ArrayList args = message.Values;
}

如何循环遍历 arrayList args 的值以输出其内容?

4

5 回答 5

13

您可以尝试使用此代码

foreach(var item in args )
{
  Console.WriteLine(item);
}
于 2012-09-27T16:49:49.617 回答
3

您可以使用一个简单的for循环:

for (i = 0; i < args.Count; i++)
{
    Console.WriteLine(args[i].ToString());
}

在此处查看此链接以获取有关 C# ArrayList 对象的更多信息。

于 2012-09-27T16:52:05.693 回答
2
ArrayList al = new ArrayList(new string[] { "a", "b", "c", "d", "e" });
foreach (var item in al)
{
    Console.WriteLine(item);
}

您也可以使用for循环。

for (int i = 0; i < al.Count; ++i)
{
    Console.WriteLine(al[i]);
}
于 2012-09-27T16:51:55.000 回答
0

除非您知道 ArrayList 中对象的类型,否则您唯一的选择是调用ToString()每个项目的方法。

如果您确实知道对象的类型,则可以将它们转换为适当的类型,然后以更智能的方式打印内容。

于 2012-09-27T16:52:33.907 回答
-1

foreach()for(int i = 0;...)都滚动浏览 ArrayList 的所有条目。但是, foreach()似乎按照它们添加到 ArrayList 的顺序滚动它们。使用for(int i = 0;...)我观察到(Visual Studio 2005)这不一定是真的。我曾经历过一种情况,当添加到 ArrayList 的对象是简单的int时,情况就是如此。但是,当添加的对象是复杂类类型时,滚动顺序不再与它们添加到 ArrayList 的顺序相对应。

于 2017-12-01T09:06:24.437 回答