而不是使用的foreach或为找忽略逗号的最后一个或第一个元素.我确信必须有一种方法可以轻松连接DataRows列表的特定列.
这是我尝试过的
List<DataRow> rows;
string forms = rows.Aggregate(string.Empty, (current, row) => current + row[1] + ", ");
Run Code Online (Sandbox Code Playgroud)
输出:A,B,C,D,
string forms = rows.Aggregate(string.Empty, (current, row) => current + ", " + row[1]);
Run Code Online (Sandbox Code Playgroud)
输出:,A,B,C,D
也尝试了这个建议:
string forms = string.Join(", ", Array.ConvertAll(rows.ToArray(), i => i.ToString()));
Run Code Online (Sandbox Code Playgroud)
输出:System.Data.DataRow,System.Data.DataRow,System.Data.DataRow,System.Data.DataRow <>
想要什么:
输出A,B,C,D
你忘记了row[1],如果你row.ToString()输出的是类名DataRow
string forms = string.Join(", ", rows.Select(row => row[1].ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)
如果您使用.NET> 4,则可以跳过,.ToArray()因为存在IEnumerable过载
string forms = string.Join(", ", rows.Select(row => row[1].ToString()));
Run Code Online (Sandbox Code Playgroud)
或者使用ConvertAll
string forms = string.Join(", ", Array.ConvertAll(rows.ToArray(), i => i[1].ToString()));
Run Code Online (Sandbox Code Playgroud)
注意:Aggregate抛出System.InvalidOperationException:"如果没有元素,则序列不包含元素",而是String.Join返回空字符串
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |