2017-03-04 65 views
0

我写了一个代码,它读取url,解析json并将数据存储在列表中。将列表插入列表对象以在dataGrid中查看

现在我做了4名新的列表:

List<int> list_AmountNeed = new List<int>(); 
List<int> list_TotalCost = new List<int>(); 
List<int> list_TotalLose = new List<int>(); 
List<int> list_TotalGain = new List<int>(); 

,并使用while循环:

while (z < list_Exp.Count) 

{ 

list_AmountNeed.Add((goalexp - currentexp)/Convert.ToInt32(list_Exp[z])); 
list_TotalLose.Add(list_AmountNeed[z] * (list_Amount_MadeFrom_One[z] * list_BuyPrice_MadeFrom_One[z] + list_Amount_MadeFrom_Two[z] * list_BuyPrice_MadeFrom_Two[z])); 
list_TotalGain.Add(list_AmountNeed[z] * list_AmountMade[z] * list_SellPrice[z]); 
list_TotalCost.Add(list_TotalGain[z] - list_TotalLose[z]); 

z++; 

} 

最终,我得到这4名名单,其中他们中的每一个由24 “细胞” 的。例如:

list_TotalCost[0]=1,list_TotalCost[1]=2,list_TotalCost[3]=3...list_TotalCost[24]=5 

现在,我已经使用混合的Visual Studio 2015年 我想这4名名单是在数据网格列的数据网格。

我如何将它们插入一个datagrid,它将显示每个24个单元的3列?

谢谢。

+0

如果我理解正确,您需要将这3个列表映射到单个对象“MyDataObject”中,对吗? –

回答

0

我认为你不需要将你的csv行分成3个列表。你已经可以指定每行作为对象MyDataObject

List<MyDataObject> myRows = new List<MyDataObject>(); 
while (!reader1.EndOfStream) 
{ 
    var line = reader1.ReadLine(); 
    var values = line.Split(','); 

    MyDataObject row = new MyDataObject() { 
     id = Convert.ToDouble(values[0]), 
     name = values[1], 
     amount = Convert.ToInt32(values[2]) 
    }; 

    myRows.Add(row); 
} 

但有一件事:确保你的对象属性的数据类型应该符合你的价值观,

即:MyDataObject.id应加倍,因为id = Convert.ToDouble(values[0])

+0

我更新了问题队友,可能没有解释我的自我正确。这些行更像是在while循环中计算的项目,而不是来自csv文件的值。 – Ben

+0

如何在计算后设置MyDataObject行属性?你可以使用像'MyDataObject row = new MyDataObject(){id = CALCULATED_VAL,name = .....}' –