C# 获取多个代码,从一个id通过以“|”分隔的方式连接它们

C# 获取多个代码,从一个id通过以“|”分隔的方式连接它们,c#,linq,datatable,C#,Linq,Datatable,前两列是放入数据表的内容。我正在尝试创建一个Linq查询,以获取正确的内容 我尝试的是: var test = (from row in dt.AsEnumerable() group row by row.Field<string>(0) into grp select new { StudentID = grp.Key,

前两列是放入数据表的内容。我正在尝试创建一个Linq查询,以获取正确的内容

我尝试的是:

var test = (from row in dt.AsEnumerable()
               group row by row.Field<string>(0) into grp
               select new
               {
                    StudentID = grp.Key,
                    Code = grp.Select(r => r.ItemArray[1].ToString() + "|")
               }).ToList();
返回:

{ StudentID = "431708", Code = {System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Data.DataRow, string>} }

如果您在调试中深入查看。我看到了需要的值。

您可以使用string.Join

var test = (from row in dt.AsEnumerable()
               group row by row.Field<string>(0) into grp
               select new
               {
                    StudentID = grp.Key,
                    Code = string.Join("|", grp.Select(r => r.ItemArray[1].ToString()).ToArray())
               }).ToList();

你可以使用string.Join

var test = (from row in dt.AsEnumerable()
               group row by row.Field<string>(0) into grp
               select new
               {
                    StudentID = grp.Key,
                    Code = string.Join("|", grp.Select(r => r.ItemArray[1].ToString()).ToArray())
               }).ToList();

在内部调用ToList选择新建。在内部调用ToList选择新建。很好。谢谢@bhmahlerNice。谢谢@bhmahler