解决“不包含'OfType'的定义”错误消息?

时间:2013-09-09 16:53:54

标签: c#

这是我的代码并出现未知错误:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
        for (int i = 0; i < dataGridView1.Rows.Count; ++i)
        {

            object a = dataGridView1.Rows[i].Cells["price"].Value;
            object b = dataGridView1.Rows[i].Cells["tedad"].Value;
            double aNumber = 0;
            double bNumber = 0;
            if (a != null)
                aNumber = Double.Parse(a.ToString());
            if (b != null)
                bNumber = Double.Parse(b.ToString());
            dataGridView1.Rows[i].Cells["total"].Value = aNumber * bNumber;
            dataGridView1.RefreshEdit();
        }
        decimal sum = dataGridView1.Rows.OfType<DataGridViewRow>()
           .Sum(row => Convert.ToDecimal(row.Cells["total"].Value));
        txtDate.Text  = sum.ToString();

OfType()这样的错误:

  

'System.Windows.Forms.DataGridViewRowCollection'不包含'OfType'的定义,也没有扩展方法'OfType'接受类型'System.Windows.Forms.DataGridViewRowCollection'的第一个参数WindowsFormsApplication1test

3 个答案:

答案 0 :(得分:8)

确保您拥有:

using System.Linq;

Enumerable.OfType Method

  • 命名空间: System.Linq
  • 汇编: System.Core(在System.Core.dll中)

enter image description here

答案 1 :(得分:3)

确保引用System.Linq命名空间,以.NET 3.5或更高版本为目标,包含System.Core作为参考。

答案 2 :(得分:0)

在for循环中,只需将[“total”]值相加并将它们放在txtDate.Text字段中。