หากคุณต้องการลบอินสแตนซ์ทั้งหมดของ 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 คุณต้องอ้างอิงตัวอย่าง Non-LINQ