Удалить элемент из массива по строке (тексту) вместо индекса - PullRequest
0 голосов
/ 18 декабря 2010

Я хочу удалить элемент из массива.На самом деле я не знаю индекс элемента и хочу удалить через его значение.Я много пробовал, но не получилось.Это функция, которую я использовал для добавления элемента в массив

    string [] Arr;
    int i = 0;
    public void AddTOList(string ItemName)
    {
        Arr[i] = ItemName;
        i++;
    }

И я хочу удалить элемент по значению.Я знаю, что приведенная ниже функция неверна, но я хочу объяснить, что я хочу:

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

Спасибо

Ответы [ 4 ]

4 голосов
/ 18 декабря 2010

Если вы хотите удалить элементы строковым ключом, используйте Dictionary

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

d.Add("Key1", 3);

int t = d["Key1"];

или что-то в этом роде.

2 голосов
/ 18 декабря 2010

Array имеет фиксированный размер, который не подходит для ваших требований. Вместо этого вы можете использовать List<string>.

List<string> myList = new List<string>();
//add an item
myList.Add("hi");
//remove an item by its value
myList.Remove("hi");
1 голос
/ 18 декабря 2010
List<string> list = new List<string>(A);
list.Remove(ItemName);
A = list.ToArray();

и @see Array.Resize и @see Array.IndexOf

0 голосов
/ 18 декабря 2010

Вы можете перебирать каждое значение в массиве и, если оно найдено, удалить его. Как то так

        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;
            }
        }           
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...