use*_*677 38 c# linq asp.net datatable ado.net
我有一个返回的DataTable
IDs
,1
,2
,3
,4
,5
,100
,101
Run Code Online (Sandbox Code Playgroud)
我想将其转换为单个字符串值,即:
,1,2,3,4,5,100,101
Run Code Online (Sandbox Code Playgroud)
如何重写以下内容以获取单个字符串
var _values = _tbl.AsEnumerable().Select(x => x);
Run Code Online (Sandbox Code Playgroud)
Win*_*ith 101
var singleString = string.Join(",", _values.ToArray() );
Run Code Online (Sandbox Code Playgroud)
Ale*_*rey 10
写一个扩展方法,如
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();
}
}
Run Code Online (Sandbox Code Playgroud)
并假设前一个表达式的结果是IEnumerable <String>,请调用:
var _values = _tbl.AsEnumerable().Select(x => x).AppendAll(String.Empty);
Run Code Online (Sandbox Code Playgroud)
String.Join(
",",
_tbl.AsEnumerable()
.Select(r => r.Field<int>("ID").ToString())
.ToArray())
Run Code Online (Sandbox Code Playgroud)