C# 배열에서 효율적으로 요소 제거
C# 배열은 본질적으로 크기가 고정되어 있습니다. 요소를 직접 제거할 수는 없습니다. 그러나 여러 가지 방법으로 요소 제거를 효과적으로 시뮬레이션할 수 있습니다. 최선의 접근 방식은 .NET Framework 버전과 특정 요구 사항에 따라 다릅니다.
LINQ 활용(.NET Framework 3.5 이상용):
LINQ는 배열 조작을 위한 우아한 솔루션을 제공합니다. 특정 값의 모든 항목을 제거하려면:
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int valueToRemove = 4; numbers = numbers.Where(num => num != valueToRemove).ToArray();</code>
첫 번째 항목만 제거하려면 약간 다른 접근 방식이 필요합니다.
<code class="language-csharp">int indexToRemove = Array.IndexOf(numbers, valueToRemove); numbers = numbers.Where((num, index) => index != indexToRemove).ToArray();</code>
LINQ가 아닌 메서드(.NET Framework 2.0 이상용):
이전 .NET 프레임워크의 경우 기존 배열 방법이 필요합니다. 한 가지 기술은 사용자 정의 조건자 함수를 사용합니다.
<code class="language-csharp">static bool isNotFour(int n) { return n != 4; } int[] numbers = { 1, 3, 4, 9, 2, 4 }; numbers = Array.FindAll(numbers, isNotFour).ToArray();</code>
또는 배열을 List<T>
으로 변환하고 요소를 제거한 후 다시 변환합니다.
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int valueToRemove = 4; int indexToRemove = Array.IndexOf(numbers, valueToRemove); List<int> tempList = new List<int>(numbers); tempList.RemoveAt(indexToRemove); numbers = tempList.ToArray();</code>
중요 고려 사항: 예외를 방지하려면 제거를 시도하기 전에 항상 Array.IndexOf
을 사용하여 배열에 요소가 있는지 확인하세요. LINQ를 사용하면 일반적으로 더 간결하고 읽기 쉬운 코드가 제공되지만 LINQ가 아닌 메서드는 이전 프레임워크와의 호환성을 제공합니다.
위 내용은 C#의 배열에서 요소를 어떻게 삭제할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!