첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

■ IN 조건 문자열 구하기 예제

------------------------------------------------------------------------------------------------------------------------

using System;

using System.Collections.Generic;

 

string condition = GetINConditionString("ID", new List<string> { "A", "B", "C", "D", "E", "F", "G" }, 5);

            

Console.WriteLine(condition);

------------------------------------------------------------------------------------------------------------------------

 

■ IN 조건 문자열 구하기

------------------------------------------------------------------------------------------------------------------------

using System.Collections.Generic;

using System.Text;

 

#region IN 조건 문자열 구하기 - GetINConditionString(fieldName, valueList, itemGroupCount)

 

/// <summary>

/// IN 조건 문자열 구하기

/// </summary>

/// <param name="fieldName">필드명</param>

/// <param name="valueList">값 리스트</param>

/// <param name="itemGroupCount">항목 그룹 수</param>

/// <returns>IN 조건 문자열</returns>

public string GetINConditionString(string fieldName, List<string> valueList, int itemGroupCount = 1000)

{

    if(valueList == null || valueList.Count == 0)

    {

        return string.Empty;

    }

 

    int listCount      = valueList.Count;

    int listGroupCount = (int)Math.Ceiling((double)listCount / itemGroupCount);

 

    StringBuilder stringBuilder = new StringBuilder();

 

    stringBuilder.Append("AND (");

 

    for(int i = 0; i < listGroupCount; i++)

    {

        int startIndex = i * itemGroupCount;

        int endIndex   = (i + 1) * itemGroupCount - 1;

 

        if(endIndex > listCount - 1)

        {

            endIndex = listCount - 1;

        }

 

        if(i == 0)

        {

            AppendINConditionString(stringBuilder, fieldName, valueList, startIndex, endIndex);

        }

        else

        {

            stringBuilder.Append(" OR ");

 

            AppendINConditionString(stringBuilder, fieldName, valueList, startIndex, endIndex);

        }

    }

 

    stringBuilder.Append(")");

 

    return stringBuilder.ToString();

}

 

#endregion

#region IN 조건 문자열 추가하기 - AppendINConditionString(stringBuilder, fieldName, valueList, startIndex, endIndex)

 

/// <summary>

/// IN 조건 문자열 추가하기

/// </summary>

/// <param name="stringBuilder">문자열 빌더</param>

/// <param name="fieldName">필드명</param>

/// <param name="valueList">값 리스트</param>

/// <param name="startIndex">시작 인덱스</param>

/// <param name="endIndex">종료 인덱스</param>

private void AppendINConditionString(StringBuilder stringBuilder, string fieldName, List<string> valueList, int startIndex, int endIndex)

{

    stringBuilder.Append($"({fieldName} IN (");

 

    for(int i = startIndex; i <= endIndex; i++)

    {

        stringBuilder.Append($"'{valueList[i]}',");

    }

 

    stringBuilder.Remove(stringBuilder.Length - 1, 1);

 

    stringBuilder.Append("))");

}

 

#endregion

------------------------------------------------------------------------------------------------------------------------

 

Posted by 사용자 icodebroker
TAG

댓글을 달아 주세요