Linq在DataTable上:将特定列选择到datatable中,而不是整个表中 [英] Linq on DataTable: select specific column into datatable, not whole table
本文介绍了Linq在DataTable上:将特定列选择到datatable中,而不是整个表中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在c#中的datatable
上运行LINQ查询.
I'm running a LINQ query on a datatable
in c#.
我想选择特定的列而不是整个行,然后将结果输入到datatable
中.我该怎么办??
I want to select specific columns rather than the whole row and enter the result into a datatable
. How can i do that??
我的代码:
public DataTable getConversions(string c_to, string p_to)
{
var query = from r in matrix.AsEnumerable()
where r.Field<string>("c_to") == c_to &&
r.Field<string>("p_to") == p_to
select r;
DataTable conversions = query.CopyToDataTable();
推荐答案
如果您已经预先知道新DataTable会有多少列,则可以执行以下操作:
If you already know beforehand how many columns your new DataTable would have, you can do something like this:
DataTable matrix = ... // get matrix values from db
DataTable newDataTable = new DataTable();
newDataTable.Columns.Add("c_to", typeof(string));
newDataTable.Columns.Add("p_to", typeof(string));
var query = from r in matrix.AsEnumerable()
where r.Field<string>("c_to") == "foo" &&
r.Field<string>("p_to") == "bar"
let objectArray = new object[]
{
r.Field<string>("c_to"), r.Field<string>("p_to")
}
select objectArray;
foreach (var array in query)
{
newDataTable.Rows.Add(array);
}
这篇关于Linq在DataTable上:将特定列选择到datatable中,而不是整个表中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文