Effizientes Entfernen von Elementen aus C#-Arrays
C#-Arrays haben von Natur aus eine feste Größe; Sie können Elemente nicht direkt entfernen. Allerdings simulieren mehrere Methoden effektiv die Elemententfernung. Der beste Ansatz hängt von Ihrer .NET Framework-Version und Ihren spezifischen Anforderungen ab.
Nutzung von LINQ (für .NET Framework 3.5 und höher):
LINQ bietet elegante Lösungen für die Array-Manipulation. So entfernen Sie alle Vorkommen eines bestimmten Werts:
<code class="language-csharp">int[] numbers = { 1, 3, 4, 9, 2, 4 }; int valueToRemove = 4; numbers = numbers.Where(num => num != valueToRemove).ToArray();</code>
Das Entfernen nur des ersten Vorkommens erfordert einen etwas anderen Ansatz:
<code class="language-csharp">int indexToRemove = Array.IndexOf(numbers, valueToRemove); numbers = numbers.Where((num, index) => index != indexToRemove).ToArray();</code>
Nicht-LINQ-Methoden (für .NET Framework 2.0 und höher):
Für ältere .NET-Frameworks sind herkömmliche Array-Methoden erforderlich. Eine Technik verwendet eine benutzerdefinierte Prädikatfunktion:
<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>
Alternativ können Sie das Array in ein List<T>
konvertieren, das Element entfernen und zurückkonvertieren:
<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>
Wichtige Überlegung: Überprüfen Sie immer die Existenz des Elements im Array mit Array.IndexOf
, bevor Sie versuchen, es zu entfernen, um Ausnahmen zu verhindern. Die Verwendung von LINQ liefert im Allgemeinen prägnanteren und lesbareren Code, aber die Nicht-LINQ-Methoden bieten Kompatibilität mit älteren Frameworks.
Das obige ist der detaillierte Inhalt vonWie kann ich Elemente aus einem Array in C# löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!