我有一个DataTable,它返回
IDs ,1 ,2 ,3 ,4 ,5 ,100 ,101
我想把它转换成单个字符串值,即:
,1,2,3,4,5,100,101
如何重写以下代码以获得单个字符串
var _values = _tbl.AsEnumerable().Select(x => x);
hrirmatl1#
var singleString = string.Join(",", _values.ToArray() );
k3fezbri2#
编写扩展方法,如
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(); } }
并假设前面表达式的结果是IEnumerable,调用:
var _values = _tbl.AsEnumerable().Select(x => x).AppendAll(String.Empty);
gcuhipw93#
String.Join( ",", _tbl.AsEnumerable() .Select(r => r.Field<int>("ID").ToString()) .ToArray())
agyaoht74#
试试这个:
var _values = _tbl.AsEnumerable().Select(x => x); string valueString = _values.ToList().Aggregate((a, b) => a + b);
ou6hu8tu5#
您可以使用MoreLINQ扩展
var singleString = _values.ToDelimitedString(",");
myss37ts6#
我在使用一般Array类型时遇到了类似的问题,我解决了它,如下所示
Array
string GetMembersAsString(Array array) { return string.Join(",", array.OfType<object>()); }
请注意,调用OfType<object>()是必需的。
OfType<object>()
whhtz7ly7#
你可以这样作弊:
String output = ""; _tbl.AsEnumerable().Select(x => output += x).ToArray(); // output now contains concatenated string
注意,强制执行查询需要ToArray()或类似命令。另一个选择是
ToArray()
String output = String.Concat(_tbl.AsEnumerable().Select(x=>x).ToArray());
7条答案
按热度按时间hrirmatl1#
k3fezbri2#
编写扩展方法,如
并假设前面表达式的结果是IEnumerable,调用:
gcuhipw93#
agyaoht74#
试试这个:
ou6hu8tu5#
您可以使用MoreLINQ扩展
myss37ts6#
我在使用一般
Array
类型时遇到了类似的问题,我解决了它,如下所示请注意,调用
OfType<object>()
是必需的。whhtz7ly7#
你可以这样作弊:
注意,强制执行查询需要
ToArray()
或类似命令。另一个选择是