C# 基于if语句在datagrid视图中使用字符串填充单元格
我有一个datagridview,它在数组中显示值。我希望第5列显示一个基于前几列数据的字符串。正如您所看到的,我有一个foreach循环,但是第5列仍然显示为空白。谢谢你的帮助C# 基于if语句在datagrid视图中使用字符串填充单元格,c#,if-statement,foreach,datagridview,C#,If Statement,Foreach,Datagridview,我有一个datagridview,它在数组中显示值。我希望第5列显示一个基于前几列数据的字符串。正如您所看到的,我有一个foreach循环,但是第5列仍然显示为空白。谢谢你的帮助 try { if (File.Exists("competitorDetailsFile.txt")) //if this file exists { string[] detailsArray = File.ReadLines("competitorDetailsFile.t
try
{
if (File.Exists("competitorDetailsFile.txt")) //if this file exists
{
string[] detailsArray = File.ReadLines("competitorDetailsFile.txt") .ToArray();
//write data to array
double time = 0;
double time1 = 0;
for (int number = 0; number < detailsArray.Length;number++)
{
string[] detailsArray2 = detailsArray[number].Split('~');
//split on tilda
time1 = Convert.ToDouble(detailsArray2[3]) +
Convert.ToDouble(detailsArray2[4]) +
Convert.ToDouble(detailsArray2[5]) +
Convert.ToDouble(detailsArray2[6]) +
Convert.ToDouble(detailsArray2[7]);
time = time1 / 5;
int score = Convert.ToInt32(detailsArray2[8]);
//time is equal to the average of the ski times
dataGridView1.Rows.Add(detailsArray2[0],
Convert.ToDouble(detailsArray2[1]),
Convert.ToInt32(detailsArray2[8]),
time);
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (time > 100)
{
row.Cells[5].Value = "LOW";
}
else if (time < 100)
{
row.Cells[5].Value = "HIGH";
}
}
}
试试看
{
if(File.Exists(“competitorDetailsFile.txt”)//如果此文件存在
{
字符串[]detailsArray=File.ReadLines(“competitorDetailsFile.txt”).ToArray();
//将数据写入阵列
双倍时间=0;
双时间1=0;
对于(int number=0;number100)
{
行。单元格[5]。Value=“低”;
}
否则如果(时间<100)
{
行。单元格[5]。Value=“高”;
}
}
}
}我认为您没有添加第五列(因此以后无法引用),而且foreach循环似乎没有必要……试试看
string score =
time > 200
? "LOWEST"
: time > 100
? "LOW"
: time > 50
? "MEDIUM"
: "HIGH";
dataGridView1.Rows.Add(detailsArray2[0], Convert.ToDouble(detailsArray2[1]), Convert.ToInt32(detailsArray2[8]), time, score);
你能修改一下你代码的格式吗?现在很难阅读!抱歉。DoneThanks的回答。这太好了!有没有办法让我把3个选项,而不仅仅是低和高?你可以级联三元,我编辑了我的答案来反映这一点。