Heim >Backend-Entwicklung >C++ >Wie kann ich Elemente aus einem Array in C# löschen?

Wie kann ich Elemente aus einem Array in C# löschen?

Susan Sarandon
Susan SarandonOriginal
2025-01-20 20:36:15692Durchsuche

How Can I Delete Elements from an Array in C#?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn