我需要查询包含未知列的数据表以返回列的子集。
显然,使用数据 View 很容易,但是 LINQ 呢?
我会将数据表和列名作为参数传递给执行查询的方法。
我没有 LINQ 经验,到目前为止我在 SO 上看到的情况似乎 LINQ 的唯一动态部分是 WHERE 过滤器,而不是选择了哪些列。
我错了吗?
如果可以,你能给我一份 sample 吗?
最佳答案
这是一个快速示例,说明如何使用 Linq to DataSet 选择任意两列:
public static void SelectRandomColumns(DataTable dataTable, string col1, string col2)
{
// Select into an anonymous type here, but you could
// select into a custom class
var query = from row in dataTable.AsEnumerable()
select new
{
p1 = row[col1],
p2 = row[col2]
};
// Do whatever you need to do with the new collection of items
foreach (var item in query)
{
Console.WriteLine("{0}: {1}, {2}: {3}", col1, item.p1, col2, item.p2);
}
}
如果您需要选择随机数量的列,那么这会有点棘手,但希望这会让您朝着正确的方向前进。
关于c# - 如何查询具有动态列的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260282/