c#选择Query以获取可数据记录

时间:2014-07-11 08:05:34

标签: linq c#-4.0 datatable

我有如下的数据表。

 Name    ID
 X       101
 Y       101101
 Z       101101101
 A       101101101101
 B       101102
 C       103101
 D       103102

我想选择id以101开头的所有名称。

我怎样才能在c#datatable中做到这一点。任何人都可以建议我......

2 个答案:

答案 0 :(得分:2)

使用LINQ并假设 ID 列为string类型:

DataTable resultsTable = dt.AsEnumerable()
                     .Where(r => r.Field<string>("ID").StartsWith("101"))
                     .CopyToDataTable();

如果 ID 列为int,请输入:

DataTable resultsTable = dt.AsEnumerable()
                     .Where(r => r.Field<int>("ID").ToString().StartsWith("101"))
                     .CopyToDataTable();

如果您只需要名单(非数据表):

var results = dt.AsEnumerable()
                .Where(r => r.Field<int>("ID").ToString().StartsWith("101"))
                .Select(r => r.Field<string>("Name"));

答案 1 :(得分:1)

获取id以101开头的所有名称,

您可以使用Datarow过滤数据

        DataTable dt = new DataTable();

        dt.Columns.Add(new DataColumn("Name", typeof(string)));
        dt.Columns.Add(new DataColumn("ID", typeof(string)));

        dt.Rows.Add("ARUN", "101");
        dt.Rows.Add("Prakash","1011");
        dt.Rows.Add("Sanjay", "00101");
        dt.Rows.Add("Rahul", "00000");

        DataRow[] dr = dt.Select("ID like '101*'");