728x90

public int IndexOf(string value);

// 문장내에서 특정 문자나 문자열이 맨 처음 발견되는 인덱스 번호를 알려주는 메서드

public string Replace(string oldValue, string newValue);

// 원래 문자/문자열을 대체할 문자/문자열로 변경

public string Substring(int startindex, int lenght);

// 시작위치 길이만큼 결과를 돌려줌, 는 0

다.



string delimiter = ",";  // 구분자
string _Header = string.Empty;
for (int i = 0; i < dgv.Columns.Count; i++)
{
    string strr = dgv.Columns[i].HeaderText;
    _Header += strr + delimiter;
}
_Header = _Header.Substring(0, _Header.Length - 1);  // 막 1
_Header = _Header.Trim();
MessageBox.Show(_Header);



System.Text.StringBuilder 클래스는 문자열을 버퍼형식으로 수정할 수 있도록 도와주는 클래스로 문자열을 추가, 수정, 삭제, 검색 등의 기능을 제공한다.


Append : 현재 StringBuilder 의 끝에 정보를 추가
Insert : 문자열/개체를 StringBuilder에서 지정한 인덱스 위치에 삽입
Remove : 현재 StringBuilder 에서 지정한 수만큼의 문자를 제거
Replace : 지정된 인덱스에 있는 문자를 대체
CopyTo : 현재 StringBuilder 특정위치에서 시작하여 바이트수만큼 목적지 문자배열의 특정위치에 복사할 때 사용
ToString : StringBuilder 의 값을 문자열로 변환


문자열을 합쳐나갈 때 StringBuilder 를 사용하면 처리속도가 훨씬 빠르다.

위에서 구분자(delimiter)를 주고 문자열을 합치고, 다시 Substring 으로 잘라내는 것보다 코드도 깔끔하고 성능도 우수하다.

StringBuilder sb = new StringBuilder();
for (int i = 0; i < dgv.Columns.Count; i++)
{
    if (sb.Length > 0)  // 최초에는 sb 길이가 0 이므로 , 가 추가되지 않는다.
    {
        sb.Append(",");
    }
    sb.Append(dgv.Columns[i].HeaderText);
    MessageBox.Show(sb.ToString()); // for 문을 돌면서 sb문자열의 결과를 확인
}


sb.Append(dgv.Columns[i].HeaderText); 대신에 sb.Append("'" + dgv.Columns[i].HeaderText + "'"); 를 하면 작은 따옴표로 값을 감싸면서 문자열을 얻어낼 수 있다.




블로그 이미지

Link2Me

,