C# 检查表中是否存在单词

C# 检查表中是否存在单词,c#,visual-studio,C#,Visual Studio,我已经建立了一个数据表,如图所示。。我将在一个文本框中插入一个句子,例如:“男孩踢球”我需要检查该句子的每个单词,如果它确实存在于该表中,那么它将在列表框中显示包含该单词的列的名称,例如:(the=>Article)。 我完成了所有步骤,但在检查和显示包含单词的列的名称的最后一步停止。。 我只是一个初学者,所以编程最后的步骤对我来说很难。有人能帮我吗??? 现在如何检查st[]中的每个单词是否存在于表中 他将显示他在中找到的单词和栏目名称,希望能有所帮助 using System; using

我已经建立了一个数据表,如图所示。。我将在一个文本框中插入一个句子,例如:“男孩踢球”我需要检查该句子的每个单词,如果它确实存在于该表中,那么它将在列表框中显示包含该单词的列的名称,例如:(the=>Article)。 我完成了所有步骤,但在检查和显示包含单词的列的名称的最后一步停止。。 我只是一个初学者,所以编程最后的步骤对我来说很难。有人能帮我吗???

现在如何检查st[]中的每个单词是否存在于表中 他将显示他在

中找到的单词和栏目名称,希望能有所帮助

using System;
using System.Data;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            DataTable dt = new DataTable();
            DataColumn article = new DataColumn("Article", typeof(string));
            dt.Columns.Add(article);
            DataColumn noun = new DataColumn("Noun", typeof(string));
            dt.Columns.Add(noun);
            DataColumn verb = new DataColumn("Verb", typeof(string));
            dt.Columns.Add(verb);
            DataRow dr = dt.NewRow();
            dr["Article"] = "the";
            dr["Noun"] = "boy";
            dr["Verb"] = "kick";
            dt.Rows.Add(dr);
            dr = dt.NewRow();

            DataRow dd = dt.NewRow();
            dd["Article"] = "a";
            dd["Noun"] = "ball";
            dd["Verb"] = "eat";
            dt.Rows.Add(dd);
            dd = dt.NewRow();

            string s = "the boy eat the ball"; //textBox1.Text;
            string[] st = s.Split(' ');
        
            foreach (var str in st)
            {
                foreach (DataRow rows in dt.Rows)
                {
                    if(str == rows["Article"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Article");
                    else if (str == rows["Noun"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Noun");
                    else if (str == rows["Verb"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Verb");
                }
            }
        }
    }
}
输出:

单词=列=文章

单词=球列=名词

单词=吃列=动词

单词=一列=文章

单词=男孩列=名词


在这种情况下,“if(str==rows[“Article”].ToString())”显示错误:错误1无法将带[]的索引应用于“object”类型的表达式。我已编辑答案以包含完整代码。看看你能不能编译。
using System;
using System.Data;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            DataTable dt = new DataTable();
            DataColumn article = new DataColumn("Article", typeof(string));
            dt.Columns.Add(article);
            DataColumn noun = new DataColumn("Noun", typeof(string));
            dt.Columns.Add(noun);
            DataColumn verb = new DataColumn("Verb", typeof(string));
            dt.Columns.Add(verb);
            DataRow dr = dt.NewRow();
            dr["Article"] = "the";
            dr["Noun"] = "boy";
            dr["Verb"] = "kick";
            dt.Rows.Add(dr);
            dr = dt.NewRow();

            DataRow dd = dt.NewRow();
            dd["Article"] = "a";
            dd["Noun"] = "ball";
            dd["Verb"] = "eat";
            dt.Rows.Add(dd);
            dd = dt.NewRow();

            string s = "the boy eat the ball"; //textBox1.Text;
            string[] st = s.Split(' ');
        
            foreach (var str in st)
            {
                foreach (DataRow rows in dt.Rows)
                {
                    if(str == rows["Article"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Article");
                    else if (str == rows["Noun"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Noun");
                    else if (str == rows["Verb"].ToString())
                        Console.WriteLine("Word=" + str + "    Column=Verb");
                }
            }
        }
    }
}