我正在测试我的 run() 函数,以确保它在方法结束时填充了所有正确的内容。我从我们的数据库中填充了 4 个字段、两个字符串和两个 IEnumerable(string)。这个想法是为我从数据库中提取的所有人打印它们。
当我只打印字符串字段时,一切正常。但是,当我也尝试添加 Enumerables 时,根本没有打印任何内容。我也在打印一个计数器,所以我知道程序仍在运行和工作。由于空间或其他原因,控制台是否决定不打印任何内容?
这是执行此操作的代码:
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: foo@bar.com, correspondance: John, PAM addresses: bar@foo.com, famousPeople: foo, bar, foo
3
4
etc
问题是,总共只有两个人(~425)出现,其余的行只是数字。我不应该至少得到字符串“电子邮件”和“通信”吗?似乎控制台只是决定不做任何事情。而且我知道代码必须到达它,因为它会在我调用 Console.WriteLine() 之前打印出整数 i。
另一方面,每当我要求打印两个字符串字段时,控制台都会在对应的整数之后显示所有 425 个用户的两个字段。有谁知道这里发生了什么?TIA