如何在C#中删除Arraylist中的元素

时间:2015-04-23 19:07:19

标签: c# .net arraylist

假设我有这个循环,我将数据放在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(',') + ",");
}

但它不起作用。有人可以告诉我我做错了什么,以及如何解决它?

4 个答案:

答案 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());