Ответ 1
вы можете попробовать с помощью этого кода
foreach(var item in args )
{
Console.WriteLine(item);
}
Я пытаюсь выяснить, какая информация содержит эти сообщения, которые передаются через OSC. Сообщения сохраняются в ArrayList. Вот код:
public void OSCMessageReceived(OSC.NET.OSCMessage message){
string address = message.Address;
ArrayList args = message.Values;
}
Как мне перебирать значения аргументов arrayList для вывода его содержимого?
вы можете попробовать с помощью этого кода
foreach(var item in args )
{
Console.WriteLine(item);
}
Вы можете использовать простой цикл for
:
for (i = 0; i < args.Count; i++)
{
Console.WriteLine(args[i].ToString());
}
Обратитесь эту ссылку здесь для получения дополнительной информации о объекте С# ArrayList.
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]);
}
Если вы не знаете тип объектов в ArrayList, единственным вариантом является вызов метода ToString()
для каждого элемента.
Если вы знаете тип объектов, вы можете применить их к соответствующему типу, а затем распечатать контент более разумным способом.
Оба foreach() и для (int я = 0;...) просматривают все записи ArrayList. Однако кажется, что foreach() прокручивает их в том порядке, в котором они были добавлены в ArrayList. С for (int я = 0;...) Я заметил (Visual Studio 2005), что это не обязательно так. В одном случае я столкнулся с тем, что когда объекты, добавленные в ArrayList, были простыми int, это было так. Однако, когда добавленные объекты имеют сложный тип класса, порядок прокрутки больше не соответствует порядку, в котором они были добавлены в ArrayList.