我是LINQ
中的新用户我希望将来自DataTable
的数据与特定列field1
值进行分组
喜欢这个Dictionary<string,List <row>>
我试过这段代码
var results = from e in data.AsEnumerable()
group e by e.Field<string>("field1") into g
select new { e.Field<string>("field1"), g.ToList() } ;
我不想用foreach
语句
我这样做,我想用LINQ
foreach (DataRow row in data.Rows)
{
string field1Val = row.Filed<string>("field1");
if (!sotrtedResult.ContainsKey(field1Val ))
{
sotrtedResult.Add(field1Val , new List<DataRow>() { row });
}
else
{
sotrtedResult[field1Val].Add(row);
}
}
答案 0 :(得分:1)
您可以尝试以下代码段:
var results = (from e in data.AsEnumerable()
group e by e.Field<string>("field1") into g
select new
{
field1 = g.Key,
values = g.Select(r=>r).ToList()
}).ToDictionary(x=>x.field1, x=>x.values);
当您按字段进行分组时,可以在将投影设为g.Key
时访问该字段。