从对象数组中删除项目

Remove item from object Array

我想从现有对象数组中删除一个项目并生成一个单独的对象数组,而不是在新对象数组中将删除的项目设为 null,

数组:

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

只是想知道是否有更好的方法?

如果你想跳过第一个,你可以使用:

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

认为这仍将创建一个新数组并复制元素,因为数组具有固定大小。跟帖供大家参考。

如果你想删除特定元素,你可以使用 linq :

var result = _response.DataSet.Where((source, index) => index != 1).ToArray();