Я тестирую функцию run(), чтобы убедиться, что у нее есть все правильные вещи, заполненные в конце метода. Я заполняю 4 поля из наших баз данных, две строки и две IEnumerable (string). Идея состоит в том, чтобы распечатать все для всех людей, которых я вытаскиваю из базы данных.Неужели Console.Write не работает?
Когда я печатаю только поля строки, все работает нормально. Однако, когда я пытаюсь добавить Enumerables, ничего не печатает вообще. Я также печатаю счетчик, поэтому я знаю, что программа все еще работает и работает. Неужели Console когда-либо решила ничего не печатать из-за пространства или чего-то еще?
Вот код, который делает это:
int i = 0;
foreach (Contact contact in Contact.LoadWithPredicate(getAll))
{
-------other code to populate fields---------
i ++;
Console.WriteLine(i);
//Turn the Enumerables into strings for printing
string firstEnumAsString = String.Join(", ", firstEnumerable.ToArray());
string secondEnumAsString = String.Join(", ", secondEnumerable.ToArray());
Console.WriteLine("Email: " + firstString+ ", correspondance: " + secondString+ ", PAM addresses: " + firstEnumAsString+ ", famousPeople: " + secondEnumAsString);
}
Так, как мой выход, когда я запускаю код выше, я получаю выход, как это:
1
2
Email: [email protected], correspondance: John, PAM addresses: [email protected], famousPeople: foo, bar, foo
3
4
etc
Проблема, только два люди из общей (~ 425) появляются, остальные строки - это просто цифры. Должен ли я, по крайней мере, получить строки «Электронная почта» и «переписка»? Кажется, что консоль просто решила ничего не делать. И я знаю, что код должен достигнуть этого, потому что он печатает целое число i перед тем, как я назову это Console.WriteLine().
С другой стороны, всякий раз, когда я просто запрашиваю, чтобы два строковых поля были напечатаны, Консоль отображает оба поля для всех 425 пользователей сразу после их соответствующего целого. Кто-нибудь знает, что здесь происходит? TIA
Console.Write может выйти из строя, если что-то слушает его. У вас есть какие-либо пользовательские прослушиватели, или вы просто запускаете это из командной строки? –
нет времени для его проверки, но в некоторых случаях, если вы конкатцируете с нулевым значением, конечный результат равен нулю. Любой нуль в том, что вы присоединяетесь? – MatthewMartin
Установите точку прерывания в строке 'Console.WriteLine' и проверьте, имеют ли все переменные значения? – Shaharyar