KeiStory

반응형

IEnumerable<dynamic> 에서 특정 컬럼 값을 콤마로 연결해 반환하기

 

Dapper 를 이용한 쿼리 결과를 IEnumerable<dynamic> 로 받아서 처리하는 경우

특정 컬럼의 값을 콤마로 연결해 반환하는 방법을 알아봅니다.

먼저, Query<dynamic>()으로 데이터를 조회한 후, 특정 컬럼의 값을 콤마로 연결하는 유틸리티 메서드를 하나 작성합니다.

public static string JoinColumnValues(IEnumerable<dynamic> data, string columnName)
{
    return string.Join(",", data
        .Select(row =>
        {
            var dict = (IDictionary<string, object>)row;
            return dict.ContainsKey(columnName) ? dict[columnName]?.ToString() : null;
        })
        .Where(val => !string.IsNullOrEmpty(val)));
}

사용은 아래와 같이합니다.

var result = connection.Query("SELECT Name FROM Users");
string names = JoinColumnValues(result, "Name");
Console.WriteLine(names);

결과

홍길동,김철수,이영희

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band