Wie man neues Element in bestehenden String-Array in C#.net hinzufügen?
Ich muss die vorhandenen Daten erhalten.
Wie man neues Element in bestehenden String-Array in C#.net hinzufügen?
Ich muss die vorhandenen Daten erhalten.
Wenn Sie aus irgendeinem Grund viel mit Arrays und nicht mit Listen arbeiten, diese generisch typisierte Rückgabemethode Add
könnte helfen
public static T[] Add<T>(T[] array, T item)
{
T[] returnarray = new T[array.Length + 1];
for (int i = 0; i < array.Length; i++)
{
returnarray[i] = array[i];
}
returnarray[array.Length] = item;
return returnarray;
}
Alle vorgeschlagenen Antworten tun das Gleiche wie das, was sie angeblich vermeiden wollen: Sie erstellen ein neues Array und fügen darin einen neuen Eintrag hinzu, nur mit mehr Overhead. LINQ ist keine Magie, Liste von T ist ein Array mit einem Pufferspeicher mit etwas zusätzlichem Platz, um eine Größenänderung des inneren Arrays zu vermeiden, wenn Elemente hinzugefügt werden.
Alle Abstraktionen müssen dasselbe Problem lösen: Sie müssen ein Array ohne leere Slots erstellen, das alle Werte enthält und diese zurückgibt.
Wenn Sie die Flexibilität benötigen und eine ausreichend große Liste erstellen können, die Sie zur Übergabe verwenden können, dann tun Sie das. Außerdem hilft der neue Span bei der gemeinsamen Nutzung von Daten, ohne dass die Listen herumkopiert werden müssen.
Um die Frage zu beantworten:
Array.Resize(ref myArray, myArray.Length + 1);
data[myArray.Length - 1] = Value;
Wie wäre es mit der Verwendung einer Erweiterungsmethode? Zum Beispiel:
public static IEnumerable<TSource> Union<TSource>(this IEnumerable<TSource> source, TSource item)
{
return source.Union(new TSource[] { item });
}
zum Beispiel:
string[] sourceArray = new []
{
"foo",
"bar"
}
string additionalItem = "foobar";
string result = sourceArray.Union(additionalItem);
Beachten Sie, dass dies das Verhalten der Uniion-Erweiterung von Linq nachahmt (die verwendet wird, um zwei Arrays zu einem neuen Array zu kombinieren) und die Linq-Bibliothek benötigt, um zu funktionieren.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.