Maison > développement back-end > C++ > Comment puis-je créer un MemoryStream à partir d'une chaîne en C# ?

Comment puis-je créer un MemoryStream à partir d'une chaîne en C# ?

Barbara Streisand
Libérer: 2025-01-22 14:56:11
original
346 Les gens l'ont consulté

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

Création d'un MemoryStream à partir d'une chaîne en C#

Les tests unitaires nécessitent souvent de simuler des flux d'entrée à partir de fichiers texte. Cet exemple montre une méthode simple et efficace, GenerateStreamFromString, pour créer un MemoryStream à partir d'une chaîne.

GenerateStreamFromStringMise en œuvre

La fonction suivante convertit efficacement une chaîne en MemoryStream :

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;
}
Copier après la connexion

Exemple d'utilisation :

using (var stream = GenerateStreamFromString("a,b \n c,d"))
{
    // Process the stream here
}
Copier après la connexion

Gestion de l'élimination de StreamWriter

L'instruction using supprime automatiquement StreamWriter, mais cela fermerait également MemoryStream. Puisque nous devons restituer le MemoryStream, nous évitons de disposer explicitement de StreamWriter. La méthode StreamWriter de Dispose ferme uniquement le flux sous-jacent, ce qui est le comportement souhaité dans ce scénario.

Cette approche fonctionne sur toutes les versions de .NET, contrairement aux alternatives qui reposent sur les StreamWriter surcharges introduites dans .NET 4.5 et versions ultérieures. Ces surcharges permettent de garder le flux sous-jacent ouvert après la suppression, mais notre méthode maintient une compatibilité plus large.

Pour plus de détails sur la gestion de la suppression du flux, reportez-vous aux ressources traitant des techniques de fermeture StreamWriter sans fermer le flux de base.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal