我有一个数组:
arr[0]="a"
arr[1]="b"
arr[2]="a"
我想要删除
只有arr[0]
,保留
arr[1]
和arr[2]
。
我之前使用的是:
arr= arr.Where(w => w != arr[0]).ToArray();
由于arr [0]
和arr [2]
具有相同的值(“a”),因此我得到的结果只有arr [1]
。
如何返回arr [1]
和arr [2]
,并且仅删除arr [0]
?
你可以使用Skip
轻松实现:
arr = arr.Skip(1).ToArray();
这将创建另一个数组,其中包含像其他答案中一样的新元素。这是因为您无法从数组中删除或添加元素。数组具有固定的大小。
using System.Linq;
。 - Chris Halcrow.DropFirst()
。 - mr5RemoveAt(0)
是一个过程,它不返回一个列表,所以你不能在其上调用ToArray()
。 - n1nsa1d00如何:
if (arr.Length > 0)
{
arr = arr.ToList().RemoveAt(0).ToArray();
}
return arr;
.Where((w, i) => i > 0)
,但是.Skip(1)
可以消除对条件语句的担忧。 - spender