使用Linq, Dot net Version 3.x在Datatable中查找文本

本文关键字:Datatable 查找 文本 Linq Dot net Version 使用 | 更新日期: 2023-09-27 17:51:06

我使用的是WindowsFormsApplication with Dot Net version 3.5。

我正在寻找一个快速的方法来找到一个字符串在数据表的行。我有一个字符串str1,我想搜索数据表dt是否包含str1中的文本。

我有一个数据表,像这样。这只是一个示例,我在datatable中有近500个字符串。

string str1 = "Carrot";
DataTable dt = new DataTable();
dt.Columns.Add("Text");
dt.Rows.Add("Cat");
dt.Rows.Add("Dog");
dt.Rows.Add("Parrot");
dt.Rows.Add("Carrot");
dt.Rows.Add("Tomato");
dt.Rows.Add("Rabbit");
dt.Rows.Add("Pigon");

我正在寻找这样的东西;

if dt.Column("Text") contains str1 then 
MessageBox.Show("The data table contains the string in str1");

使用Linq, Dot net Version 3.x在Datatable中查找文本

if(dt.AsEnumerable().Any(x => x.Field<string>("Text") == str1))
{
    ...
}

如果不能使用LINQ,则使用循环:

foreach (DataRow row in dt.Rows)
{
     if (row["Text"] == str1)
     {
          MessageBox.Show("The data table contains the string in str1");
          break;
     }
}