Heim >Backend-Entwicklung >C++ >Wie kann ich in C# einen MemoryStream aus einem String erstellen?

Wie kann ich in C# einen MemoryStream aus einem String erstellen?

Barbara Streisand
Barbara StreisandOriginal
2025-01-22 14:56:11333Durchsuche

How Can I Create a MemoryStream from a String in C#?

Erstellen eines MemoryStream aus einem String in C#

Unit-Tests erfordern oft die Simulation von Eingabeströmen aus Textdateien. Dieses Beispiel zeigt eine einfache und effektive Methode, GenerateStreamFromString, um ein MemoryStream aus einer Zeichenfolge zu erstellen.

GenerateStreamFromStringImplementierung

Die folgende Funktion wandelt einen String effizient in einen MemoryStream um:

<code class="language-csharp">public static Stream GenerateStreamFromString(string s)
{
    var stream = new MemoryStream();
    var writer = new StreamWriter(stream);
    writer.Write(s);
    writer.Flush();
    stream.Position = 0;
    return stream;
}</code>

Verwendungsbeispiel:

<code class="language-csharp">using (var stream = GenerateStreamFromString("a,b \n c,d"))
{
    // Process the stream here
}</code>

Umgang mit der StreamWriter-Entsorgung

Die using-Anweisung entfernt automatisch StreamWriter, aber dadurch würde auch MemoryStream geschlossen. Da wir das MemoryStream zurückgeben müssen, vermeiden wir die explizite Entsorgung von StreamWriter. Die StreamWriter-Methode von Dispose schließt nur den zugrunde liegenden Stream, was in diesem Szenario das gewünschte Verhalten ist.

Dieser Ansatz funktioniert in allen .NET-Versionen, im Gegensatz zu Alternativen, die auf StreamWriter Überladungen basieren, die in .NET 4.5 und höher eingeführt wurden. Diese Überladungen ermöglichen es, den zugrunde liegenden Stream nach der Entsorgung offen zu halten, aber unsere Methode sorgt für eine breitere Kompatibilität.

Weitere Einzelheiten zur Verwaltung der Stream-Entsorgung finden Sie in den Ressourcen, in denen Techniken zum Schließen StreamWriter ohne Schließen des Basis-Streams erörtert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich in C# einen MemoryStream aus einem String erstellen?. 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