【问题标题】:how to find a string which is exist or not in some specific datacolumns of the datatable using LINQ query in C#?如何使用 C# 中的 LINQ 查询查找数据表的某些特定数据列中存在或不存在的字符串?
【发布时间】:2017-11-25 06:22:56
【问题描述】:

我正在尝试查找是否存在于数据表的某个指定列中的字符串。例如,DataTable 包含 5 个 DataColumn。我想找到存在于 DataColumn1 或 DataColumn2 中的字符串。 我尝试了下面的代码部分来获取单个 column1 值。

IEnumerable<string> query = from dr in dt.AsEnumerable()
                        select dr.Field<string>("ID");

如何获取 2 列或更多列的值?

【问题讨论】:

  • 你能举几个行的例子吗?你想从这些行中得到什么?
  • 选择新对象[] {dr.Field("ID"), dr.Field("ID1")};

标签: c# winforms linq datatable datacolumn


【解决方案1】:

你可以返回匿名类型:

 var query = from dr in dt.AsEnumerable()
    select new {ID = dr.Field<string>("ID"), Column2 = dr.Field<string>("Column2")};

您可以使用该类型的字段:

var Column2 = query.First().Column2;
var ID = query.First().ID;

【讨论】:

    【解决方案2】:

    使用这个。

    IEnumerable<string> query = from dr in dt.AsEnumerable()
                                        where dr.Field<string>("ID").Contains("stringValue") || dr.Field<string>("DataColumn1").Contains("stringValue")
                                        select new { Id = dr.Field<string>("ID"), DataColmn1 = dr.Field<string>("DataColumn1") };
    

    【讨论】:

    • 这是可能的答案。答案只返回字符串列出如何返回多于一列
    • 更新了答案。立即尝试。
    【解决方案3】:

    试试代码:

     IEnumerable<string> query = (from dr in dt.AsEnumerable()
                    select dr.Field<string>("ID")+ dr.Field<string>("ID")).ToList();
    

    另一种解决方案:

    IEnumerable 对 One Generic Type Arguement 的支持不支持 Multi Return 类型

    创建一个新类

        class customer
          {
            Public string Id {get;set;}
            Public String Name {get;set;}
          }
    

    并且习惯于linq

     IEnumerable<customer> query = (from dr in dt.AsEnumerable()
                select new customer{ id= dr.Field<string>("ID"),name= dr.Field<string>("name")}).ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-23
      • 1970-01-01
      相关资源
      最近更新 更多