我需要从DataTable创建一个DataView,但有一个不寻常的转折:
我需要逐行决定(使用代码)DataTable中哪些行包含在DataView中。
DataTable dt = LoadData();
DataView dv = new DataView(dt);
foreach (DataRow row in dt.Rows)
{
if (RowIsGood(row))
{
// This obviously doesn't work but I need equivalent logic:
DataRowView drv = new DataRowView();
drv.Row = row;
dv.Add(drv);
}
}
需要注意的一些重要事项:
那么甚至可以使用DataTable / DataView架构吗?
LINQ是否允许我自定义我需要的DataView?
提前致谢!
答案 0 :(得分:2)
由于您正在寻找逐行解决方案,并且已经有一个带有DataRow并返回bool的函数。
只需将参考添加到System.Data.DataSetExtensions
并使用AsDataView
方法
DataView dv=DT.AsEnumerable().Where(RowIsGood).AsDataView();
答案 1 :(得分:1)
DataView dv = (from n in DT.AsEnumerable() Where RowIsGood(n) select n ).AsDataView();