C# 获取多个代码,从一个id通过以“|”分隔的方式连接它们
前两列是放入数据表的内容。我正在尝试创建一个Linq查询,以获取正确的内容 我尝试的是: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,
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