이번에는 C# 에서 읽은 문자열의 줄 개수를 구하는 방법에 대하여 알아보겠습니다.
크게 3가지 방법이 있습니다.
1. ReadLine()
StreamReader, StringReader 등 읽기와 관련된 클래스를 사용하여 읽었다면 해당 변수의 ReadLine() 으로 개수를 구할 수 있습니다. 아래는 예시 코드입니다.
StreamReader file = File.OpenText(openFileDialog.FileName)
int count = 0;
while (file.ReadLine() != null)
{
count++;
}
while 문을 통하여 더 이상 읽을 수 있는 문자열이 없을 때까지 반복하면서 count 변수를 증가시키는 방법입니다.
2. File.ReadAllLines("").Length
파일을 바로 읽을 경우 사용할 수 있는 방법입니다.
System.IO 가 using 문에 추가되어 있어야 합니다.
아래는 예시 코드입니다.
int count = File.ReadAllLines(openFileDialog.FileName).Length;
3. File.ReadLines("").Count()
2번 방법과 같이 파일을 바로 읽을 경우 사용할 수 있는 방법입니다.
System.IO 가 using 문에 추가되어 있어야 합니다.
아래는 예시 코드입니다.
int lineCount = File.ReadLines(openFileDialog.FileName).Count();
※ 성능 비교
불러오는 방법이 다양하다보니 어떤 것을 써야 할지 애매하여 줄 수를 백 만개정도 놓고 테스트를 진행하였습니다.
첫 번째는 109만개 가량의 줄 개수를 가진 텍스트 파일을 불러왔을 때의 걸린 시간입니다.
첫 번째는 218만개 가량의 줄 개수를 가진 텍스트 파일을 불러왔을 때의 걸린 시간입니다.
비록 한 번씩만 진행해보았지만 걸리는 시간의 차이를 보면 ReadAllLines 함수가 가장 비효율적 이라는 것을 알 수 있습니다. 물론 줄 개수가 적다면 코드 자체는 간단하기 때문에 사용해도 무방할 듯 하나, 똑같이 간편한 ReadLines 함수를 사용해서 구하는게 아무래도 가장 효과적일 것 같네요. 스샷외의 테스트 결과를 보면 While 문과 걸리는 시간이 0.005초 정도의 오차가 나온적도 있기 때문에 참고하시면 될 것 같습니다.
이상으로 C# 읽은 문자열 줄 수 구하는 방법에 대하여 알아보았습니다.
C# MELSECNET-G로 Mitsubishi PLC와 연동하기 (0) | 2022.10.12 |
---|---|
C# .Net Core에 대하여 알아보기 (2) | 2022.09.30 |
C# Word 데이터를 IEEE754 방식으로 치환하기 (0) | 2022.08.26 |
C# 여러 차원의 배열 길이 구하는 방법 (0) | 2022.08.24 |
C# dll 파일을 외부에서 참조 추가 시 설명 보이게 하는 방법 (0) | 2022.07.19 |
댓글 영역