我想从现有对象数组中删除一项并生成一个单独的对象数组,而在新对象数组中不将删除的项目设置为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();
只是好奇是否有更好的方法?
答案 0 :(得分:1)
如果要跳过第一个,可以使用:
var result = _response.DataSet.Skip(1).ToArray();
由于数组的大小固定,因此仍会创建一个新数组并复制元素。线程here供您参考。
如果要删除特定元素,可以使用linq:
var result = _response.DataSet.Where((source, index) => index != 1).ToArray();