Хорошо, скажем, у меня есть массив объектов в 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
, исключение, которое будет выброшено на второй итерации, вызовет перехват исключения, и ничего не будет записано в мой текстовый документ.
Помещать try/catch внутрь foreach бессмысленно, потому что исключение происходит при приведении.
Я хочу использовать цикл foreach (предположим, что циклов for не существует и что мы не можем использовать индексирование или ToString()
) для перечисления массива объектов, приведения каждого к строке и записи их в текстовый документ с использованием StreamWriter
. Если бросок работает, счастливых дней. Если нет, я хочу перехватить выброшенное исключение и продолжить перечисление оставшихся объектов.
Спасибо
Редактировать: Пока кто-то не сказал, это не домашнее задание! Я пытаюсь решить проблему реального мира.