检查未绑定到C#

时间:2018-02-05 04:26:09

标签: c# datagridview

我有一个未绑定到数据库表的datagridview。在我的程序中,我想检查只有数字的列并将它们存储在列表中。

List<string> ColumnNamesWithNumericTypes = new List<string>();

        foreach (DataGridViewColumn dgvCol in dgv.Columns)
        {
            foreach (DataGridViewRow dgvRow in dgv.Rows)
            {
                  // what is a good code to check for this condition?
              if ( the column is fully of a numeric type(int)) 
                {
                    ColumnNamesWithNumericTypes.Add(dgvCol.Name);
                }
            }
        }

感谢。

1 个答案:

答案 0 :(得分:0)

编辑:您可以针对每种数字数据类型(也就是值类型)测试每条记录,但可能需要的操作数量取决于您想要的数字数据类型,因为-2.323是数字,但它不是一个int。也不是9,223,372,036,854,775,807。因此,不是针对每种值类型进行测试,而是使用正则表达式的解决方案。

ALSO:如果你能用LINQ做到这一点我不会感到惊讶

我只tested the RegEx portion,但您可以这样做:

using System.Text.RegularExpressions;

然后..

List<string> ColumnNamesWithNumericTypes = new List<string> ( );

        foreach (DataGridViewColumn dgvCol in dgv.Columns)
        {
            string columnname = dgvCol.Name;
            bool isnumeric = false;
            foreach (DataGridViewRow row in dgv.Rows)
            {
                if (Regex.IsMatch (row.Cells[columnname].Value , @"^[-]?([-.\d]+?)$"))
                    isnumeric = true;
                else
                {
                    isnumeric = false;
                    break;
                }
            }

            if (isnumeric == true) ColumnNamesWithNumericTypes.Add (columnname);
        }