从多个字符串创建数组

时间:2015-05-07 02:27:19

标签: c# asp.net

我有3个字符串,这些不是真正的数据只是一个例子:

string items = "Item 1, Item 2, Item 3";

string price = "300, 400, 500";

string tax = "30, 50, 60";

我要做的是创建一个这样的数组:

[Item 1] => Array([Price] => 300, [Tax] => 30), [Item 2] => Array([Price] => 400, [Tax] => 50), [Item 3] => Array([Price] => 500, [Tax] => 60)

问题是我不知道如何在ASP.NET中执行此操作,如果我必须在PHP中执行此操作,这将没有问题。

1 个答案:

答案 0 :(得分:5)

在C#中,您可能会声明一个类:

class Item {
    public string Name { get; set; }
    public decimal Price { get; set; }
    public decimal Tax { get; set; }
}

然后您可以将字符串拆分为数组并将其解析为Item列表:

string items = "Item 1, Item 2, Item 3";    
string price = "300, 400, 500"; 
string tax = "30, 50, 60";  

var names = items.Split(',');
var prices = price.Split(',');
var taxes = tax.Split(',');

var list = new List<Item>();

for (int i = 0; i < names.Length; i++) {
    list.Add(new Item() {
        Name = names[i].Trim(),
        Price = decimal.Parse(prices[i]),
        Tax = decimal.Parse(taxes[i])
    });
}

以上是非常脆弱的:我假设每个列表具有相同数量的元素,并且没有处理将字符串转换为十进制的解析失败;但是你明白了。

这是运行上述代码的fiddle