如何使用逗号连接List <DataRow>的特定列?

akd*_*akd 1 c#

而不是使用的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

Enr*_*ada 5

你忘记了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返回空字符串