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 に答える