从对象数组中删除项目

时间:2019-10-01 23:41:41

标签: c# arrays list asp.net-core-2.0

我想从现有对象数组中删除一项并生成一个单独的对象数组,而在新对象数组中不将删除的项目设置为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();

只是好奇是否有更好的方法?

1 个答案:

答案 0 :(得分:1)

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

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

由于数组的大小固定,因此仍会创建一个新数组并复制元素。线程here供您参考。

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

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