我正在尝试绕过循环并将项目附加到StringBuilder。
但是,我无法在循环中做任何事情,我认为我的循环甚至不被访问。
以下是代码:
string initialString = "PRINT OUT PRODUCTS BELOW!\n";
StringBuilder stringBuilder = new StringBuilder(initialString);
for (int i = 0; i < products.Count(); i++)
{
stringBuilder.Append(products.ElementAt(i));
stringBuilder.Append("24");
stringBuilder.Append("36");
}
stringBuilder.Append("45");
return stringBuilder.ToString();
最终的“45”将打印出来,但24或36将不打印。
答案 0 :(得分:7)
如果您没有看到24
和36
,那么您的商品列表为空。您的代码没有任何问题。
顺便说一句,您可以使用String.Join(string separator, IEnumerable values)构建相同的字符串:
String.Join("2436", products) + "45"
答案 1 :(得分:2)
我认为我的循环甚至不被访问
通常,对于不是集合的查询,应该避免ElementAt
,因为它总是需要在循环中执行才能到达索引。而是首先使用ToList
{或更好foreach
:
foreach(var product in products)
{
stringBuilder.Append(product.ToString());
stringBuilder.Append("24");
stringBuilder.Append("36");
}
答案 2 :(得分:0)
两个可能的原因 1)您的product.Count为0 2)或者在循环运行的循环期间打扰产品列表
请不要使用ElementAt这会打扰你的循环所以我建议你使用foreach循环