C# 画出一张桌子

C# 画出一张桌子,c#,asp.net,C#,Asp.net,我正在开发一个将摄氏温度转换为华氏温度的应用程序,反之亦然 该应用程序包含多个字段和单选按钮。用户填写“开始温度”、“结束温度”和“迭代器”,并选择从C转换为F或从F转换为C 单击按钮后,将呈现一个表格,显示以C为单位的温度和以F为单位的转换温度(反之亦然)。我试着用while循环和for循环来实现它,但它并没有像它应该的那样工作 我知道这是一个不必要的复杂解决方案,我真的应该感谢帮助创建一个更优雅的解决方案,这是可行的 var i = 0; while (st

我正在开发一个将摄氏温度转换为华氏温度的应用程序,反之亦然

该应用程序包含多个字段和单选按钮。用户填写“开始温度”、“结束温度”和“迭代器”,并选择从C转换为F或从F转换为C

单击按钮后,将呈现一个表格,显示以C为单位的温度和以F为单位的转换温度(反之亦然)。我试着用while循环和for循环来实现它,但它并没有像它应该的那样工作

我知道这是一个不必要的复杂解决方案,我真的应该感谢帮助创建一个更优雅的解决方案,这是可行的

        var i = 0;

        while (startTemp < endTemp) {
            i += 1;

            TableRow tRow = new TableRow();
            tRow.CssClass = (i % 2 == 0 ? "white" : "grey");
            tempTable.Rows.Add(tRow);

            startTemp = startTemp + iterator;
            if (startTemp < endTemp) {
                for (int j = 0; j <= 1; j++) {
                    TableCell tCell = new TableCell();
                    if ((j % 2) == 0) {
                        tCell.Text = startTemp.ToString();
                    }
                    else {
                        if (tempType1 == "°C") {
                            convertedTemp = TemperatureConverter.CelsiusToFahrenheit(startTemp);
                        }
                        else {
                            convertedTemp = TemperatureConverter.FahrenheitToCelsius(startTemp);
                        }
                        tCell.Text = convertedTemp.ToString();
                    }
                    tRow.Cells.Add(tCell);
                }
            }

编辑:除了一件事,这个解决方案很好用。如果我使用1作为开始温度,10作为结束温度,1作为迭代器,它会在9处停止(而不是应该在10处停止),我就是不明白为什么。

你使用它的方式还不错。您也可以使用类来存储数据:

public class ConvertData
{
  public decimal Celsius { get; set; }

  public decimal Fahrenheit { get; set; }
}

首先创建ConvertData对象,并将其存储在集合中。然后将集合绑定到中继器、ListView等。

您的解决方案很好,但我只会执行一个循环

TableRow tRow
TableCell tCell
for(int i = startTemp; i < endTemp; i += iterator)
{
tRow = new TableRow();
tRow.CssClass = (i % 2 == 0 ? "white" : "grey");
tempTable.Rows.Add(tRow);

tCell = new TableCell();
tCell.Text = i.ToString();
tRow.Cells.Add(tCell);
tCell = new TableCell();

tCell.Text = convert(i);

tRow.Cells.add(tCell);
tempTable.Rows.Add(tRow);

}
TableRow-tRow
表细胞
for(int i=startTemp;i
你的车9点停,因为 在while循环开始时,执行9+=1

所以i=10,如果(10<10) 所以就到此为止


因此,如果您愿意,您可以这样做(startTemp非常感谢!您的解决方案确实比我的解决方案优雅得多,而且效果很好,请接受它需要以我需要的相同方式进行更改。)
TableRow tRow
TableCell tCell
for(int i = startTemp; i < endTemp; i += iterator)
{
tRow = new TableRow();
tRow.CssClass = (i % 2 == 0 ? "white" : "grey");
tempTable.Rows.Add(tRow);

tCell = new TableCell();
tCell.Text = i.ToString();
tRow.Cells.Add(tCell);
tCell = new TableCell();

tCell.Text = convert(i);

tRow.Cells.add(tCell);
tempTable.Rows.Add(tRow);

}