특정 구조를 가진 텍스트 파일이 있습니다. 각 행의 시작 부분에는 "true"또는 "false"와 같은 단어가 있습니다. 이 같은:
$True 3 5 1 8
$False 12 5 a z
$False 1,5,7
$True 123
$True 7ao
$False 198
값이있는 배열, 목록 또는 이와 비슷한 것을 가져와야합니다.
$False 12 5 a z
$False 1,5,7
$False 198
행 수를 알 수 없습니다. 특정 시작 단어 (False)로만 행을 읽는 가장 빠른 방법을 찾으려고합니다. string.Split
방법을 사용하여 구문 분석을 시도한 다음 list에 추가 하려고 시도 if word == word
했지만 문제는 속도에 있습니다. 5-6000 줄이 있으면 속도가 느려집니다. 이와 같은 더 빠른 방법이 있습니까?
이것은 충분히 빨라야합니다.
var filteredLines =
File.ReadLines("path")
.Where(line => line.StartsWith(word))
.ToList()
ReadLines
전체를 메모리로로드하지 않고 파일을 한 줄씩 반복 하므로 (MSDN에서) :
ReadLines 및 ReadAllLines 메서드는 다음과 같이 다릅니다. ReadLines를 사용하면 전체 컬렉션이 반환되기 전에 문자열 컬렉션 열거를 시작할 수 있습니다. ReadAllLines를 사용할 때 배열에 액세스하기 전에 전체 문자열 배열이 반환 될 때까지 기다려야합니다. 따라서 매우 큰 파일로 작업 할 때 ReadLines가 더 효율적일 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다