我有DataTable
如下:
Term|ChildTerm|ID|PID
---------------------
BOTH| |1 |5
|A |1 |5
|B |1 |5
F| |2 |5
|f |2 |5
|F |2 |5
M| |3 |5
|m |3 |5
|M |3 |5
E| |4 |6
|e |4 |6
|E |4 |6
|Em |4 |6
我想选择PID = 5和按ID分组 因此,我需要获得三个数据行"两者"," F"," M"我怎么能实现这个
我写了以下代码
var NCIIDS = PCGTDS.Tables[strTableName]
.AsEnumerable()
.GroupBy(Row => Row.Field<string>("PID") == "5")
.Select(Value => Value.First());
foreach (DataRow PCNCIIDS in NCIIDS)
{
//some operation on the data row
}
但是这只返回First Value,因为Select
语句只返回Linq Select
中的一个。我如何获得所有三条记录?
答案 0 :(得分:0)
我能够通过以下代码解决这个问题
var ncid = from NCI in PCGTDS.Tables[strTableName].AsEnumerable()
group NCI by NCI.Field<string>("PID") == "5";
foreach (var n in ncid)
{
if (n.Key)
{
foreach (var value in n)
{
}
}
}