My.Computer.FileSystem.GetFiles는 "디렉터리 내의 파일 이름을 나타내는 문자열의 읽기 전용 컬렉션을 반환합니다."를 반환합니다.vb.net GetFiles에 의해 반환 된 컬렉션에서 파일 이름을 제거하는 방법
임의로 파일을 컬렉션에서 선택하여 처리하고 목록에서 삭제 한 다음 모든 파일이 처리 될 때까지 반복하고 싶습니다.
나는 GetFiles에서 변경 가능한 컬렉션으로 만 컬렉션을 복사하는 것으로 생각할 수 있습니다. 그러나 GetFiles는 결국 수백만 개의 파일 이름을 반환 할 수 있습니다.
Sweet! 좋은 생각이야. 이 경우에 어떤 셔플 방법을 권하고 싶습니까? –
와우, 복잡한 셔플 링이 목록에서 각 파일을 단순히 삭제하는 것보다 더 효율적인지, 연결 목록 인 경우 매우 빠를지 모르겠다. –
그러나'List'은 ** 링크 된 목록이 아닙니다 **입니다. 목록에서 항목을 삭제할 때마다 (List.Remove() 또는 List.RemoveAt() 호출) .Net은 올바른 크기의 새 버퍼를 할당하고 모든 요소를 새 버퍼에 복사합니다. 예, 스스로 셔플을 작성해야합니다. 프레임 워크에는이 상자가 기본적으로 포함되어 있어야합니다 (그러나 Fisher-Yates의 경우 Google 뿐이므로이를 수행하는 방법을 보여주는 많은 예제 코드를 찾을 수 있습니다 지나치게 소란스럽지 않고. –