我们如何从数组中过滤文本

时间:2013-08-20 05:42:50

标签: asp.net

我有一个返回数据的数组,如3,6,9,12,15 ..(3的乘法)

DataTable dt = new DataTable();
string GridData = ViewState["ShowItem"].ToString();
string[] FilterData = GridData.Split('^');

上面的数组返回数据,如..

FilterData [0] = "Pizza";     (Item)
FilterData [1] = "2$";        (Price)
FilterData [2] = "2";         (Quantity)
FilterData [3] = "Burger";
FilterData [4] = "5$";
FilterData [5] = "1";
FilterData [6] = "Cesa";
FilterData [7] = "7$";
FilterData [8] = "3";

now I want to enter above data as column wise in database like: 
Item      Price    Quantity    Total(Price*Quantity)

现在我想运行一个循环,添加特定字段的数据,如:

for (int nIndex = 0; nIndex < FilterData.Length; nIndex++)
{
DataRow drow = dt.NewRow();
drow["ProductItem"] = FilterData[nIndex].ToString();   (Add all Item)
drow["Cost"] = FilterData[nIndex].ToString();          (Add all Cost)
drow["Quantity"] = FilterData[nIndex].ToString();       (Add all Quantity)
double Total= Convert.ToDouble(FilterData[nIndex].ToString()) * Convert.ToInt32(FilterData[nIndex].ToString());       (Add all cost*Quantity)
                drow["Total"] = Total;
dt.Rows.Add(drow);

}

所以有人可以帮助我如何运行循环,以便将数据添加到特定列,如:     商品价格数量总计(价格*数量)

Pizza    2       2             4
Burger   5       1             5
Cesa     7       3             21

1 个答案:

答案 0 :(得分:3)

您需要每次将nIndex增加3,通过它与nIndex的偏移量访问每个成员:

for (int nIndex = 0; nIndex < FilterData.Length; nIndex += 3)
{
    DataRow drow = dt.NewRow();
    drow["ProductItem"] = FilterData[nIndex];               // Item
    var cost = FilterData[nIndex + 1];                      // Cost
    var qty = FilterData[nIndex + 2];                       // Quantity
    drow["Cost"] = cost;
    drow["Quantity"] = qty;
    double Total = 
        Convert.ToDouble(cost.Remove(cost.Length - 1)) *    // remove $
        Convert.ToInt32(qty);                               // Total
    drow["Total"] = Total;
    dt.Rows.Add(drow);
}