如何添加列和评估值

时间:2015-12-13 04:03:04

标签: c# winforms

我有一个datagridview(两列)。第1列:名称,第2列:年龄

当我按下评估按钮时,我想在Columns Age后添加更多列名称Evaluate。

每行的内容都是Young(旧)。如果年龄<40岁则年轻,如果年龄> 40岁则年龄 我是怎么做到的?

我的代码:

OpenFileDialog opd = new OpenFileDialog();
    private void btnOpenfile_Click(object sender, EventArgs e)
    {
        //Open txt file
        opd.Filter = "TXT|*.txt";
        //Choose File
        if (opd.ShowDialog() == DialogResult.OK)
        {
            lblFilename.Text = opd.SafeFileName;

        }
        var dulieu = File.ReadAllLines(opd.FileName);
        ////////////////////
        if (dulieu.Count() > 0)
        {
            foreach (var cellValues in dulieu.Skip(0))
             {
            var cellArray = cellValues
                .Split(new[] {'\t'}, StringSplitOptions.RemoveEmptyEntries);
            if (cellArray.Length == dtgBangketqua.Columns.Count)
                dtgBangketqua.Rows.Add(cellArray);
             }

        }

    }

My Form

1 个答案:

答案 0 :(得分:0)

根据您的if (cellArray.Length == dtgBangketqua.Columns.Count)我假设您还没有&#34; 评估&#34; DataGridView中的列。所以首先要做的就是添加一个。

然后遍历每一行并获得年龄值。 它最初是以字符串形式出现的,因此,您需要将其强制转换为int。 然后评估年龄,我假设你并不是要排除那些正好是40岁的人,所以我把它设置为Old。

以下是适合您需要的代码:

private void btnEvaluate_Click(object sender, EventArgs e)
{
    dtgBangketqua.Columns.Add("Evaluate", "Evaluate");

    foreach (DataGridViewRow ThisRow in dtgBangketqua.Rows)
    {
        string strAge = ThisRow.Cells[1].Value as string;
        int Age = -1;
        if( int.TryParse(strAge,out Age) == true )
        {
            ThisRow.Cells[2].Value = (Age < 40) ? "Young" : "Old";
        }
    }
}

如果答案适合您,请不要忘记将答案标记为已接受。