Удалить элемент из массива объекта - PullRequest
0 голосов
/ 02 октября 2019

Я хотел удалить один элемент из существующего массива объектов и создать отдельный массив объектов, не делая удаленный элемент нулевым в новом массиве объектов,

Array:

DataSet = new[]
                {
                    new DataSet
                    {
                        Item_1 = "value1",
                        Item_2 = "value2",

                    },
                    new DataSet
                    {
                        Item_1 = "value3",
                        Item_2 = "value4",

                    }
              }

Ожидаетсярезультат:

"DataSet": [
    {
      "Item_1": "value3",
      "Item_2": "value4",

    }
  ]

Следующий код работает как положено:

var tempListDataSet = _response.DataSet.ToList();
    tempListDataSet.Remove(_response.DataSet[0]);
    response.DataSet = tempListDataSet.ToArray();

Просто интересно, есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 02 октября 2019

Если вы хотите пропустить первый, вы можете использовать:

var result = _response.DataSet.Skip(1).ToArray();

Хотя это все равно создаст новый массив и скопирует элементы, так как массивы имеют фиксированный размер. Тема здесь для вашей справки.

Если вы хотите удалить определенный элемент, вы можете использовать linq:

var result = _response.DataSet.Where((source, index) => index != 1).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...