C#不会循环我的循环

时间:2013-11-28 13:12:40

标签: c# winforms list stringbuilder

我正在尝试绕过循环并将项目附加到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将不打印。

3 个答案:

答案 0 :(得分:7)

如果您没有看到2436,那么您的商品列表为空。您的代码没有任何问题。

顺便说一句,您可以使用String.Join(string separator, IEnumerable values)构建相同的字符串:

String.Join("2436", products) + "45"

答案 1 :(得分:2)

  

我认为我的循环甚至不被访问

Use the debugger

通常,对于不是集合的查询,应该避免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循环