假设我有这个循环,我将数据放在ArrayList
:
int Num1 = Int32.Parse(textBox1.Text);
int Num2 = Int32.Parse(textBox2.Text);
ArrayList ItemList = new ArrayList();
while (Num1 <= Num2)
{
ItemList.Add(Num1);
Num1++;
}
我还有另一个循环来阅读我的Arraylist
:
foreach (int item in ItemList)
{
listBox1.Items.Add("Number " + item.ToString() + ",");
}
这给出了这个结果:
Number 1,
Number 2,
Number 3,
Number 4,
我需要删除最后一项中的最后一个逗号并获得此结果:
Number 1,
Number 2,
Number 3,
Number 4
我试过这个:
foreach (int item in ItemList)
{
listBox1.Items.Add("Number " + item.ToString().Trim(',') + ",");
}
但它不起作用。有人可以告诉我我做错了什么,以及如何解决它?
答案 0 :(得分:6)
看看这是否适用于您的目的:
var result = string.Join("," + Environment.NewLine, itemList.ToArray());
忘记&#34;号码&#34;部分:
var result = string.Join(", " + Environment.NewLine, itemList.ToArray().Select(x => "Number " + x));
答案 1 :(得分:3)
listBox1.Items.Add("Number " + item.ToString() +
ItemList.IndexOf(item) == ItemList.Count - 1 ? string.Empty : ",");
答案 2 :(得分:0)
你不应该在foreach中修改你的收藏品。
您可以尝试在显示结果的ItemList
之前修改您的收藏集foreach
。
你可以做这样的事情(在显示结果的foreach之前):
ItemList[ItemList.Length-1] = ItemList[ItemList.Length-1].SubString(0,ItemList.Length -2);
答案 3 :(得分:0)
这个怎么样:
foreach (int item in ItemList)
{
if (listBoxOne.Items == null)
{
listBox1.Items.Add("Number " + item.ToString());
}
else
{
listBox1.Items.Add(",\n" + "Number " + item.ToString());
}
//Or more simply below
listBoxOne.Items.Add = listBoxOne.Items == null ? ("Number " + item.ToString()) : (",\n" + "Number " + item.ToString());