问题 循环遍历C#中ArrayList的值


我正在试图弄清楚这些消息包含哪些信息正在通过OSC流式传输。消息存储在ArrayList中。这是代码:

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

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


4162
2017-09-27 16:46


起源

foreach(Object o in args)Console.WriteLine(o); - Tim Schmelter
注意: ArrayList 是旧的非泛型变体 List<T> 并且可以使用很多 List<T>,除了项目被输入为 object。 - Olivier Jacot-Descombes


答案:


你可以试试这个代码

foreach(var item in args )
{
  Console.WriteLine(item);
}

8
2017-09-27 16:49





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

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

查看 这个链接在这里 有关C#ArrayList对象的更多信息。


2
2017-09-27 16:52





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]);
}

1
2017-09-27 16:51





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

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


0
2017-09-27 16:52





的foreach() 和 for(int i = 0; ...) 滚动ArrayList的所有条目。但似乎是这样 的foreach() 按照它们添加到ArrayList的顺序滚动它们。同 for(int i = 0; ...) 我观察到(Visual Studio 2005),这不一定是真的。我在一个案例中遇到过,当添加到ArrayList的对象很简单时 INT是这样的。但是,当添加的对象属于复杂类类型时,滚动顺序不再与它们添加到ArrayList的顺序相对应。


-1
2017-12-01 09:06



这两种方法是等价的,不应该导致不同的排序? - mhvelplund