如何在 C# 中使用 LINQ 查询查找数据表的某些特定数据列中存在或不存在的字符串?

how to find a string which is exist or not in some specific datacolumns of the datatable using LINQ query in C#?

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

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

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

您可以return匿名输入:

 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;

使用这个。

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") };

尝试代码:

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

另一个解决方案:

IEnumerable 对一种通用类型参数的支持不支持多种 Return 类型

新建一个Class

    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();