从多个字符串创建数组

use*_*331 0 c# asp.net

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

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

string price = "300, 400, 500";

string tax = "30, 50, 60";
Run Code Online (Sandbox Code Playgroud)

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

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

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

Blo*_*ard 5

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

class Item {
    public string Name { get; set; }
    public decimal Price { get; set; }
    public decimal Tax { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以将字符串拆分为数组并将其解析为以下列表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])
    });
}
Run Code Online (Sandbox Code Playgroud)

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

这是一个运行上述代码的小提琴.