C# 查找文本中datagridview列的每个值的引用,并将每个引用显示到下一列

C# 查找文本中datagridview列的每个值的引用,并将每个引用显示到下一列,c#,datagridview,find-occurrences,C#,Datagridview,Find Occurrences,我这里有个问题。我试图显示datagridview列“值”中的每个字符串出现的次数。我试图在每个值旁边显示每个事件(例如,我想要这个:71->4,83->7,0B->6等等)。这是我的密码。我只拿第一个作为结果。提前谢谢 private void button4_Click(object sender, EventArgs e) { string Text = richTextBox1.Text; string[] words = Text.Sp

我这里有个问题。我试图显示datagridview列“值”中的每个字符串出现的次数。我试图在每个值旁边显示每个事件(例如,我想要这个:71->4,83->7,0B->6等等)。这是我的密码。我只拿第一个作为结果。提前谢谢

    private void button4_Click(object sender, EventArgs e)
    {
        string Text = richTextBox1.Text;

        string[] words = Text.Split(' ');
        foreach (string word in words)
        {
            dataGridView1.Rows.Add(word);
        }

        string searchTerm = " " ;
        foreach (DataGridViewRow r in dataGridView1.Rows )
        {
            if (searchTerm == null || searchTerm == String.Empty || searchTerm.Trim().Length == 0)
            {
                searchTerm = r.Cells["Value_Detected"].Value.ToString();

                var matchQuery = from wor in words
                                 where wor.ToUpperInvariant() == searchTerm.ToUpperInvariant()
                                 select wor;


                int wordCount = matchQuery.Count();

                r.Cells["Occur"].Value = wordCount.ToString();
            }


        }




        button4.Enabled = false;
    }
而不是

if (searchTerm == null || searchTerm == String.Empty || searchTerm.Trim().Length == 0)
应该是:

if (r.Cells["Value_Detected"].Value != null)

循环中的“如果”条件是什么?这使得块只运行一次。如果我不使用NullException的“If”错误。。。你知道一种方法,我可以把它转换成我想要的结果吗?我对编程完全是新手,所以任何帮助都是完美的,“如果”都没有意义。哪一行抛出空引用异常?如果是从单元格中获取值的行,则需要在调用.ToString方法之前检查值是否不为null。非常感谢。效果很好,帮了大忙。祝您有个美好的一天。