programing

쉼표로 구분된 문자열을 입력할 수 있습니까?

goodsources 2023. 6. 10. 09:04
반응형

쉼표로 구분된 문자열을 입력할 수 있습니까?

반환되는 데이터 테이블이 있습니다.

IDs
,1
,2
,3
,4
,5
,100
,101

이 값을 단일 문자열 값(예:

,1,2,3,4,5,100,101

단일 문자열을 얻으려면 다음을 다시 작성하려면 어떻게 해야 합니까?

var _values = _tbl.AsEnumerable().Select(x => x);
var singleString = string.Join(",", _values.ToArray() );

다음과 같은 확장 방법을 작성합니다.

public static String AppendAll(this IEnumerable<String> collection, String seperator)
{
    using (var enumerator = collection.GetEnumerator())
    {
        if (!enumerator.MoveNext())
        {
            return String.Empty;
        }

        var builder = new StringBuilder().Append(enumerator.Current);

        while (enumerator.MoveNext())
        {
            builder.Append(seperator).Append(enumerator.Current);
        }

        return builder.ToString();
    }
}

그리고 이전 식의 결과가 IEnumberable<String>이라고 가정하면 다음을 호출합니다.

var _values = _tbl.AsEnumerable().Select(x => x).AppendAll(String.Empty);    
 String.Join(
      ",",
      _tbl.AsEnumerable()
          .Select(r => r.Field<int>("ID").ToString())
          .ToArray())

사용해 보십시오.

var _values = _tbl.AsEnumerable().Select(x => x);
string valueString = _values.ToList().Aggregate((a, b) => a + b);

저도 장군과 비슷한 문제가 있었습니다.Array타자를 치고 다음과 같이 풀었습니다.

string GetMembersAsString(Array array)
{
    return string.Join(",", array.OfType<object>());
}

해당 통화를 기록OfType<object>()필수 항목입니다.

추가 LINQ 확장을 사용할 수 있습니다.

var singleString = _values.ToDelimitedString(",");

이것으로 부정행위를 할 수 있습니다.

String output = "";
_tbl.AsEnumerable().Select(x => output += x).ToArray(); 
// output now contains concatenated string

메모ToArray()쿼리를 실행하려면 유사한 작업이 필요합니다.

또 다른 옵션은

String output = String.Concat(_tbl.AsEnumerable().Select(x=>x).ToArray());

언급URL : https://stackoverflow.com/questions/3414263/ienumerable-to-string-delimited-with-commas

반응형