わかりました。C#.Netに次のようなオブジェクトの配列があるとします。
object[] myObjects = new object[9];
myObjects[0] = "Foo";
myObjects[1] = 3;
myObjects[2] = 2.75;
myObjects[3] = "Bar";
myObjects[4] = 675;
myObjects[5] = "FooBar";
myObjects[6] = 12;
myObjects[7] = 11;
myObjects[8] = "FooBarFooBar";
foreachブロック内で、この配列を列挙し、次のようにStreamWriterを使用してすべての文字列をテキストドキュメントに書き込みます。
StreamWriter sw = new StreamWriter(@"C:\z\foobar.txt");
foreach(string myObject in myObjects)
{
sw.WriteLine(myObject);
}
sw.Flush();
sw.Close();
私の問題は、とをキャストしようとintegers
するdoubles
とString
、例外がスローされることです。
try/catch
ステートメントの周りにブロックを配置するforeach
と、2回目の反復でスローされる例外が例外のキャッチをトリガーし、テキストドキュメントに何も書き込まれません。
キャストで例外が発生するため、foreach内にtry/catchを配置しても意味がありません。
foreachループを使用して(forループが存在せず、インデックス付けまたはを使用できないと仮定しますToString()
)、オブジェクトの配列を列挙し、それぞれを文字列にキャストし、を使用してテキストドキュメントに書き込みますStreamWriter
。キャストがうまくいけば、幸せな日々。そうでない場合は、スローされた例外をキャッチし、残りのオブジェクトを列挙し続けます。
ありがとう
編集:誰かがそれを言う前に、これは宿題ではありません!私は現実世界の問題を解決しようとしています。