通过字符串(文本)而不是索引从数组中删除元素

时间:2010-12-18 11:10:49

标签: c# winforms

我想从数组中删除元素。实际上我不知道元素的索引,并希望通过它的值删除。我已经尝试了很多但是失败了。这是我用来在Array

中添加元素的函数
    string [] Arr;
    int i = 0;
    public void AddTOList(string ItemName)
    {
        Arr[i] = ItemName;
        i++;
    }

我想通过值删除元素。我知道下面的功能是错误的,但我想解释一下我想要的东西:

    public void RemoveFromList(string ItemName)
    {
        A["Some_String"] = null;
    }

由于

4 个答案:

答案 0 :(得分:4)

如果您想通过字符串键删除项目,请使用Dictionary

var d = new Dictionary<string, int>();

d.Add("Key1", 3);

int t = d["Key1"];

或类似的东西。

答案 1 :(得分:2)

Array具有固定大小,不适合您的要求。相反,您可以使用List<string>

List<string> myList = new List<string>();
//add an item
myList.Add("hi");
//remove an item by its value
myList.Remove("hi");

答案 2 :(得分:1)

List<string> list = new List<string>(A);
list.Remove(ItemName);
A = list.ToArray();

和@see Array.Resize 和@see Array.IndexOf

答案 3 :(得分:0)

您可以遍历数组中的每个值,如果找到则删除它。像这样的东西

        string[] arr = new string[] { "apple", "ball", "cat", "dog", "elephant", "fan", "goat", "hat" };
        string itemToRemove = "fan";
        for (int i = 0; i < arr.Length; i++)
        {
            if (arr[i] == itemToRemove)
            {
                arr[i]=null;
                break;
            }
        }