IEnumerable to string

杀马特。学长 韩版系。学妹 提交于 2019-12-20 17:34:45

问题


I have a DataTable that returns

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

I want to convert this to single string value, i.e:

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

How can i rewrite the following to get a single string

var _values = _tbl.AsEnumerable().Select(x => x);

回答1:


var singleString = string.Join(",", _values.ToArray() );



回答2:


Write an extension method such as

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();
    }
}

and assuming the result of your previous expression is IEnumerable<String>, call:

var _values = _tbl.AsEnumerable().Select(x => x).AppendAll(String.Empty);    



回答3:


 String.Join(
      ",",
      _tbl.AsEnumerable()
          .Select(r => r.Field<int>("ID").ToString())
          .ToArray())



回答4:


Try this:

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



回答5:


You can use MoreLINQ extension

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



回答6:


I had a similar issue with general Array type and i solved it as follows

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

Note that call OfType<object>() is mandatory.




回答7:


You can cheat with this:

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

Note ToArray() or similar is needed to force the query to execute.

Another option is

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


来源:https://stackoverflow.com/questions/3414263/ienumerable-to-string

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!