如果要删除所有4实例而不需要知道索引:
LINQ:(. NET Framework 3.5)
int[] numbers = { 1, 3, 4, 9, 2 }; int numToRemove = 4; numbers = numbers.Where(val => val != numToRemove).ToArray(); 非LINQ:(. NET Framework 2.0)
static bool isNotFour(int n) { return n != 4; }
int[] numbers = { 1, 3, 4, 9, 2 }; numbers = Array.FindAll(numbers, isNotFour).ToArray(); 如果只想删除第一个实例:
LINQ:(. NET Framework 3.5)
int[] numbers = { 1, 3, 4, 9, 2, 4 }; int numToRemove = 4; int numIndex = Array.IndexOf(numbers, numToRemove); numbers = numbers.Where((val, idx) => idx != numIndex).ToArray(); 非LINQ:(. NET Framework 2.0)
int[] numbers = { 1, 3, 4, 9, 2, 4 }; int numToRemove = 4; int numIdx = Array.IndexOf(numbers, numToRemove); List
tmp = new List
(numbers); tmp.RemoveAt(numIdx); numbers = tmp.ToArray();
问题来源于stack overflow