2013-03-31 3 views
0

나는 수백만 개의 고유 한 문자열을 생성하고 있습니다. 이 목적을 위해 HashSet <을 사용하고 있습니다. 결과를 텍스트 파일에 정기적으로 저장해야합니다.수백만 레코드의 고유 문자열에 대한 HashSet?

for (int i = lastEndIndex; i < storage.Count; i++) 
     { 
      sb.AppendLine(storage.ElementAt(i)); 
     } 

lastEndIndex이 후 마지막 저장 생성 된 결과를 저장하기 위해 필요합니다

나는 내 코드는 다음 줄에 너무 많은 시간이 소요 나타났습니다. 이것에 대한 다른 더 좋은 메커니즘이 있습니까?

답변

2

ElementAt()은 호출 할 때마다 컬렉션의 처음부터 반복해야합니다. 그래서 비효율적입니다.

나는 또 다른 접근 방식을 제안합니다 - 후 마지막리스트로 저장 생성 된 결과를 저장하고 HastSet 자체에서하지, 거기에서 파일에 그 결과를 저장 :

latest 목록 :

var latest = new List<string>(); 

요소 추가 :

파일로 저장 중 :

foreach(var item in latest) 
{ 
    sb.AppendLine(item); 
} 
latest.Clear(); 
관련 문제