c# - C# 将列表输出到 Winforms 上的 DataGridView 或 ListView
问题描述
我正在慢慢完成一个项目并且遇到了一个问题,我需要两个建议来选择最佳的行动方案。
我正在使用一个类型为边的三角形,其类如下
public class Sides
{
//These are the encapsulated data
private int intAdj; //adjacent
private int intOpp; //opposite
private Double doubleHypot; //hypotenuse
//This is the constructor
public Sides(int intAdj, int intOpp, Double doubleHypot)
{
//less confusion when the same name is used
this.intAdj = intAdj;
this.intOpp = intOpp;
this.doubleHypot = doubleHypot;
}
//Getters and Setters
public int IntAdj { get; set; }
public int IntOpp { get; set; }
private Double DoubleHypot { get; set; }
}
}
这是列表的声明
private List<Sides> listTriangle;
初始化如下:
listTriangle = new List<Sides>(); //Creates the list of type Sides
这是我调用计算和输出的地方
PerformCalc(intTriangleSize);
OutputList();
这是我执行计算并添加到列表中的地方
private void PerformCalc(int intTriangleSize)
{
//This is where the calculations occur
for (int indexAdj = 1; indexAdj < (intTriangleSize + 1); indexAdj++)
{
for (int indexOpp = 1; indexOpp < (intTriangleSize + 1); indexOpp++)
{
doubleHypotenuse = doubHypot(doubleSquare(indexAdj), doubleSquare(indexOpp));
listTriangle.Add(new Sides(indexAdj, indexOpp, doubleHypotenuse));
}
}
}
我现在正试图通过 datagridview 或 listview 输出这个列表。它们看起来像这样:
输出图像如下
我正在使用的代码如下
private void OutputList()
{
DataTable myDataTable = new DataTable();
myDataTable.Columns.Add("Adjacent", System.Type.GetType("System.Int16"));
myDataTable.Columns.Add("Opposite", System.Type.GetType("System.Int16"));
myDataTable.Columns.Add("Hypotenuse", System.Type.GetType("System.Double"));
foreach (Sides myTriSides in listTriangle)
{
myDataTable.Rows.Add();
}
dataGridView1.DataSource = myDataTable;
for (int indexList = 0; indexList < listTriangle.Count(); indexList++)
{
listView1.Items.Add(listTriangle[indexList].IntAdj.ToString(),
listTriangle[indexList].IntOpp.ToString(),
listTriangle[indexList].DoubleHypot.ToString()) ;
}
}
我知道代码存在问题,但我不确定代码问题出在哪里。
根据我的研究,它与建议 datagridview 和 listview 的人平分秋色。我可以得到建议,在这种情况下使用哪个更好的视图。所有帮助和建议将不胜感激。