Тема: Видалення елемента з массива string С#

Хто підкаже як правильно видалити елемент масива по його індексу, або імені? Я пробував так

public void Delete(string name)
{
    count -= 1;
    int obj = Convert.ToInt32(name);
    string[] updata =  new string[nameobj.Length - 1];
    for (int i = 0; i < obj; i++)
    {
        updata[i] = nameobj[i];
    }
    for (int i = obj + 1; i < nameobj.Length; i++)
    {
        updata[i - 1] = nameobj[i];
        nameobj = updata;
    }
    PlayerPrefs.DeleteKey(name + "x");
    PlayerPrefs.DeleteKey(name + "z");
}

Метод перезаписує массив робить його на 1 меншим, але не заповнює його до кінця.Заповнює його до того місця де був видалений елемент +1.Цей зразок кода взяв з інтернета, але чомусь не працює що я роблю не так? Буду вдячний за допомогу

2 Востаннє редагувалося leofun01 (05.02.2023 01:50:16)

Re: Видалення елемента з массива string С#

Що таке nameobj ?
upd:
Ймовірно string[] nameobj;.
Хм.. PlayerPrefs - щось знайоме. Unity ?

Твій метод Delete робить щось не правильне.

vovanxxx.2013 написав:

Цей зразок кода взяв з інтернета, але чомусь не працює ..

Краще створити з нуля.
І якщо треба видаляти елементи, то бери колекції (LinkedList<T>, Dictionary<K, V>), не масиви ([], Array).

3

Re: Видалення елемента з массива string С#

так nameobj це і є той масив з якого мені потрібно видалити елемент і зменшити його на 1
PlayerPrefs так це юніті
метод  Delete видаляє дані обєкта якого я видалив зі сцени щоб при повторному завантаженні він не спавнився тому видаляється імя обєкта з масива та його дані з PlayerPrefs
Гарна ідея замінити масив на щось інше що може приймати більше як один елемент і має функцію видалення елемента по індексу або імені дякую за пораду буду пробувати змінити масив на List або Dictionary

4

Re: Видалення елемента з массива string С#

А якщо метод Remove? Підставляєш туди індекс та кількість елементів і все.