我正在对某个名为" KPI"的列进行验证。 我正在做的是制作一个用于验证列的.txt文件。
正如您在记事本中看到的那样,它有4个值。
除此之外,验证会说,"无效"。
List<string> fields = new List<string>();
var lines = File.ReadAllLines(@"\\SMITSHOME01\Home_Folder_1$\vhernandez\My Documents\Visual Studio 2013\validate.txt");
for (int i = 0; i < lines.Length; i++)
{
fields.Add(lines[i]);
}
但我不是很擅长循环,所以我问是否有人可以帮助我这样做。 现在,我正在做的就是这个。
for (int i = 0; i < dataGridView.RowCount; i++)
{
//MessageBox.Show(dataGridView.Rows[i].Cells["KPI"].Value.ToString());
if (dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains(fields[i]))
{
//sb.AppendLine(dataGridView.Rows[i].Cells["KPI"].Value.ToString() + " is Valid.");
}
else if (dataGridView.Rows[i].Cells["KPI"].Value.ToString() == null || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "" || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "KPI" || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "Category")
{
}
else
{
//MessageBox.Show("Row not decimal:" + " [ " + dataGridView[h, i].Value.ToString() + "] in column " + dataGridView.Columns[h].Name);
sb.AppendLine(dataGridView.Rows[i].Cells["KPI"].Value.ToString() + " is **NOT** Valid.");
}
}
我正在使用.Contains()
进行验证,但由于System.ArgumentOutOfRangeException
循环效率低下,我总是得for
。
我想在if fields[]
中动态添加.Contains()
或以某种方式引用它,有人可以帮助我吗?
答案 0 :(得分:1)
我认为您的if
条件检查应该是另一种方式:
if(fields.Contains(dataGridView.Rows[i].Cells["KPI"].Value.ToString()))