2010-01-12 3 views
2

누구나 스트림과 같은 읽기, 검색 등을 허용하는 객체 컬렉션 (내 경우 문자열)을 캡슐화하기위한 .NET 클래스를 알고 있습니까? 본질적으로 다음 객체를 반환하고 현재 읽기 위치를 업데이트하는 GetNext 메서드입니다.. NET 라이브러리의 문자열 스트림 객체

이것은 (아마도 확장 메서드를 사용하여) 내포하기가 어렵지는 않지만 이미 존재할 수있는 현재 개발 된 .NET 클래스를 활용하고 싶었습니다.

편집 : 데이터가 항상 전달 방식으로 액세스 될 수 있습니다 (즉, spedific 위치를 찾을 필요가 없음). 또는 0으로 재설정 만하면됩니다. 그래서 그것은 IEnumerator가 작동하는 것처럼 보입니다.

답변

5

이것은 IEnumerable/IEnumerator의 기능입니다. 목록에서 GetEnumerator()를 호출하고 IEnumerator의 Current/MoveNext() 멤버를 사용하면됩니다.

현재 레코드 포인터를 이동하는 것과 관련하여 더 많은 기능을 원하면 Take() 확장 방법을 사용하면 필요한 항목을 찾을 수 있습니다. 내부 상태를 유지하는 IEnumerable을 구현하는 것도 쉬운 방법입니다.

+0

그게 효과가 있어요. 좋은 생각. 이 작업을 수행하기 위해 열거자를 사용하는 것만으로는 생각조차하지 않았습니다. –

-1

BinaryReader/BinaryWriter 프리미티브 타입 모두 직렬화하는 기능을 갖는다. 예상되는 유형을 알고있는 한이 방법이 효과적입니다. 문자열 경계를 유지하기를 원한다면 찾기가 어려울 것이지만 모든 기본 요소에 대한 전진 읽기에만 효과적입니다.

+0

포스터는 데이터가 아니라 객체 만 원합니다. – codekaizen

2

항상 IEnumerable입니다. 물론 한계는 당신이 거꾸로 추구 할 수 없다는 것입니다.

관련 문제