如何使用 LINQ 从 DataTable 中获取分组的字段数组

我有一个DataTable


var tbl = new DataTable();

tbl.Columns.Add("key",typeof(int));

tbl.Columns.Add("value",typeof(int));

tbl.Rows.Add(1, 2);

tbl.Rows.Add(1, 4);

tbl.Rows.Add(3, 6);

tbl.Rows.Add(3, 8);

tbl.Rows.Add(3, 10);

从这张表中我只想values按类似的key东西分组


{{2,4},{6,8,10}} 

更确切地说IEnumerable<IEnumerable<int>>


我设计了一个查询


var res = from row in tbl.AsEnumerable() 

           group row by row.Field<int>("key") 

           into nGroup  select nGroup;

这给了我DataRow组合与keyie的组合IEnumerable<IGrouping<int, DataRow>>。


我该如何选择value?


呼唤远方
浏览 105回答 1
1回答

慕沐林林

对于每个nGroup,您需要选择values:var res = from row in tbl.AsEnumerable()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; group row by row.Field<int>("key") into nGroup&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select (&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; from n in nGroup&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; select n.Field<int>("value")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; );
打开App,查看更多内容
随时随地看视频慕课网APP