(,) 콤마로 분류해서 데이터를 저장하는 .csv 파일을 만들 때
string.Join()으로 특정 문자 (,)를 합치면 된다
⭕ 선언 초기화
List<string> str1 = new List<string>() { "2022", "08", "20"};
string[] str2 = { "15", "28", "30" };
string result;
result = string.Join("/", str1) +"\t"+ string.Join(":", str2);
Console.WriteLine(result);
이 코드는 먼저 문자열 리스트 str1과 문자열 배열 str2를 초기화합니다. str1은 연도, 월, 일을 순서대로 담고 있으며, str2는 시, 분, 초를 순서대로 담고 있습니다.
그리고 string.Join 메서드를 사용하여 str1과 str2를 조합한 문자열 result를 생성합니다. string.Join 메서드는 매개변수로 받은 문자열 배열이나 문자열 리스트의 요소를 구분자로 분리하여 하나의 문자열로 합쳐줍니다.
이 코드에서는 string.Join("/", str1)을 사용하여 str1의 요소들을 "/" 문자로 연결한 문자열을 생성하고, string.Join(":", str2)을 사용하여 str2의 요소들을 ":" 문자로 연결한 문자열을 생성합니다. 그리고 두 문자열을 "\t"로 구분하여 합쳐서 result에 저장합니다.
🍺 출력 결과
2022/08/20 15:28:30
마지막으로 Console.WriteLine(result)를 사용하여 result의 내용을 콘솔에 출력합니다. 출력되는 내용은 "2022/08/20 15:28:30"과 같이 연도, 월, 일을 "/"로 구분하고 시, 분, 초를 ":"로 구분한 문자열입니다.
⭕ 코드 예제
데이터를 콤마로 구분하여 배열에 저장 후 값 변경 후 다시 콤마로 합치는 예제
List<string> data = new List<string>() {"202201040000,254,2.3,2.1,0,31",
"202201040001,224,3.3,0.5,0,35",
"202201040002,204,7.3,1.8,0,38",
"202201040003,264,6.3,2.1,0,37"};
List<string> outputData = new List<string>();
for (int i = 0; i < data.Count; i++)
{
string[] dataSplit = data[i].Split(","); // 콤마(,)를 구분하여 배열 저장
double calc = 0;
calc = double.Parse(dataSplit[3]) * 10; // 원하는 위치의 데이터 값을 수정 작업
dataSplit[3] = calc.ToString("F2"); // 위치 데이터 값 변경 후 저장
string sumStr = string.Join(",", dataSplit); // dataSplit 배열로 저장된 데이터 값을 다시 콤마로 결합
outputData.Add(sumStr);
}
이 코드는 C# 언어로 작성된 리스트(List)를 활용한 데이터 처리 코드입니다.
첫 번째 줄에서는 문자열 형태의 데이터를 저장할 List인 data를 선언하고, 데이터를 저장합니다.
그 다음으로 나오는 코드는 for문을 이용하여 data 리스트의 각 데이터를 반복적으로 처리합니다.
먼저, dataSplit이라는 string 배열을 선언하여 data 리스트의 각 데이터를 콤마(,)를 기준으로 분리하여 저장합니다.
그리고, 데이터 수정을 위한 계산을 수행합니다. 이 경우, dataSplit[3]에 해당하는 데이터를 가져와 double로 변환한 뒤 10을 곱합니다.
이후, 다시 문자열로 변환하여 원래 배열의 dataSplit[3] 위치에 저장합니다.
마지막으로, string.Join 메서드를 이용하여 다시 콤마로 결합한 뒤, outputData 리스트에 저장합니다.
이 코드를 실행하면, data 리스트의 각 데이터의 네 번째 위치에 있는 데이터를 10배한 결과가 outputData 리스트에 저장됩니다.
🍺 출력 결과
data list
202201040000,254,2.3,2.1,0,31
202201040001,224,3.3,0.5,0,35
202201040002,204,7.3,1.8,0,38
202201040003,264,6.3,2.1,0,37
dataSplit list
202201040000 254 2.3 2.1 0 31
202201040001 224 3.3 0.5 0 35
202201040002 204 7.3 1.8 0 38
202201040003 264 6.3 2.1 0 37
outputData list // 3번째 값 x 10
202201040000,254,2.3,21.00,0,31
202201040001,224,3.3,5.00,0,35
202201040002,204,7.3,18.00,0,38
202201040003,264,6.3,21.00,0,37
🌲 생각
Join 함수로 문자 합치는게 데이터 처리하는 과정에선 편했다
'코딩 > C#' 카테고리의 다른 글
[C#] 엑셀처럼 정렬하기 나머지 행들을 같이 정렬하는 방법 (0) | 2023.04.02 |
---|---|
[C#] 2중 리스트 사용하는 방법 (0) | 2023.04.02 |
[C#] .csv 파일 읽기 쓰기 (0) | 2023.04.02 |
[C#] List 데이터 정렬 하는 방법 (0) | 2023.04.02 |
[C#] C#에서 전기자동차 충전소 정보 API를 활용하는 방법 (0) | 2023.04.01 |