假设我有这个数组,
int[] numbers = {1, 3, 4, 9, 2};
如何通过“名称”删除元素? , 让我们说数字 4?
连ArrayList
都没有帮忙删除?
string strNumbers = " 1, 3, 4, 9, 2";
ArrayList numbers = new ArrayList(strNumbers.Split(new char[] { ',' }));
numbers.RemoveAt(numbers.IndexOf(4));
foreach (var n in numbers)
{
Response.Write(n);
}
最佳答案
如果您想删除 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<int> tmp = new List<int>(numbers);
tmp.RemoveAt(numIdx);
numbers = tmp.ToArray();
编辑: 以防万一您还没有弄明白,正如 Malfist 指出的那样,您需要以 .NET Framework 3.5 为目标,以便工作的 LINQ 代码示例。如果您的目标是 2.0,则需要引用非 LINQ 示例。
关于c# - C#中如何删除数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/496896/