如何找到指定列和行的部分?
我有一个 datagridview 作为表格,如下图所示。
在 datagridview 中,单元格包含规则。(TE',1) 表示它是规则 TE',它是第一个规则。
我的任务就像我有一个表达式,例如 i+i*i,并使用第一列中显示的“规则”,我在 datagridview 中找到单元格的值,该列是表达式的第一个字符, which's row 是第二部分的第一个字符。我知道一开始这听起来很荒谬,但让我举个例子来说明这一点。
第一步是 (i+i*i#,E#,empty)。我检查第一部分的第一个字符i,检查第二部分的第一个字符E,查找列i和行E的部分。它是(TE',1),所以在开始步骤中,我将E替换为单元格值TE' ,并为第三部分添加数字1 ,该部分一开始是空的。现在实际的“公式”是这样的:
(i+i*i#,TE',1)
我用在单元格中找到的“规则”替换了第二部分,并将规则的编号添加到公式的第三部分。
下一步,我找到列i和行T的部分,它是(FT',4),所以我将T替换为FT',并将数字 4 添加到第三部分。
(i+i*i#, FT'E'#,14)
现在我寻找第i列和第F行的部分,即(i,8)。我再做一次更换。
(i+i*i#,iT'E'#,148)
现在对于第 i 列和第 i行它是一个流行,所以我从公式中删除两者。
(+i*i#,T'E'#,148)
现在我寻找列+和行T' .......
当公式中只有#和数字时,整个过程结束,例如 (#,#,1942682)。
我这样填充了datagridview(对此我也很抱歉..):
private void AddRows()
{
string[] header_Row = new string[] { "", "+", "*", "(", ")", "i", "#", };
dataGridView.Rows.Add(header_Row);
string[] E_Row = new string[] { "E", "", "", "(TÉ,1)", "", "(TÉ,1)", "" };
dataGridView.Rows.Add(E_Row);
string[] EComma_Row = new string[] { "É", "(+TÉ,2)", "", "", "(Eps,3)", "", "(Eps,3)" };
dataGridView.Rows.Add(EComma_Row);
string[] T_Row = new string[] { "T", "", "", "(FT',4)", "", "(FT',4)", "" };
dataGridView.Rows.Add(T_Row);
string[] TComma_Row = new string[] { "T'", "(Eps,6)", "(+FT',5)", "", "(Eps,6)", "", "(Eps,6)" };
dataGridView.Rows.Add(TComma_Row);
string[] F_Row = new string[] { "F", "", "", "(E,7)", "", "(i,8)", "" };
dataGridView.Rows.Add(F_Row);
string[] emptyRow = new string[] { };
dataGridView.Rows.Add(emptyRow);
string[] Plus_Row = new string[] { "+", "pop", "", "", "", "", "" };
dataGridView.Rows.Add(Plus_Row);
string[] Star_Row = new string[] { "*", "", "pop", "", "", "", "" };
dataGridView.Rows.Add(Star_Row);
string[] StartingBracket_Row = new string[] { "(", "", "", "pop", "", "", "" };
dataGridView.Rows.Add(StartingBracket_Row);
string[] EndingBracket_Row = new string[] { ")", "", "", "", "pop", "", "" };
dataGridView.Rows.Add(EndingBracket_Row);
string[] i_Row = new string[] { "i", "", "", "", "", "pop", "" };
dataGridView.Rows.Add(i_Row);
string[] Hashmark_Row = new string[] { "#", "", "", "", "", "", "Elfogad" };
dataGridView.Rows.Add(Hashmark_Row);
}
所以问题是,如果我有第一个公式(i+i*i#,E#,empty),如何在 datagridview 中搜索i列和E行的部分,以获取该单元格的值?