2010-01-12 5 views
2

Quelqu'un connaît-il une classe .NET pour l'encapsulation d'une collection d'objets (chaînes dans mon cas) qui permettent la lecture, la recherche, etc. de type Flux? Essentiellement, j'ai besoin d'une liste qui a un GetNext méthode qui va retourner l'objet suivant et mettre à jour la position de lecture actuelle.Objet de flux de chaîne dans la bibliothèque .NET

Cela ne serait pas difficile à implémenter (possiblement avec des méthodes d'extension), mais je voulais tirer parti de toutes les classes .NET déjà existantes.

EDIT: Je souhaite ajouter que les données seront toujours accessibles de manière directe (c'est-à-dire qu'il n'est pas nécessaire de rechercher une position spécifique) ou simplement réinitialisées à zéro. Il semble donc qu'un IEnumerator peut fonctionner.

Répondre

5

C'est ce que fait IEnumerable/IEnumerator. Appelez simplement GetEnumerator() sur votre liste et utilisez les membres Current/MoveNext() de IEnumerator.

Si vous voulez plus de fonctionnalités en termes de déplacement du pointeur d'enregistrement actuel, vous pouvez trouver ce dont vous avez besoin simplement en utilisant la méthode d'extension Take(). L'implémentation d'un IEnumerable qui maintient l'état interne est également facile.

+0

Cela a fonctionné. Bonne idée. Je n'ai même pas envisagé d'utiliser l'énumérateur pour effectuer cette tâche. –

-1

BinaryReader/BinaryWriter a des fonctions pour la sérialisation de tous les types primitifs. Tant que vous savez à quel type s'attendre, cela devrait fonctionner pour vous. Chercher sera difficile si vous vous attendez à ce qu'il maintienne des limites de chaîne, mais fonctionnera bien pour la lecture de toutes les primitives.

+0

L'affiche veut juste les objets, pas les données. – codekaizen

2

Il y a toujours IEnumerable. Bien sûr, la limitation est que vous ne pouvez pas chercher en arrière.

Questions connexes