Linq在DataTable上:将特定列选择到datatable中,而不是整个表中 [英] Linq on DataTable: select specific column into datatable, not whole table

查看:58
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆