【发布时间】:2014-11-03 14:28:16
【问题描述】:
我有一个交易对象:
public class Transaction
{
public int transactionId {get;set;}
public string itemName {get;set;}
public int quantity {get;set;}
}
交易列表可能如下所示(为方便阅读而序列化):
[{transactionId: 1, itemName: 'foo', quantity: 5},
{transactionId: 1, itemName: 'bar', quantity: 5},
{transactionId: 2, itemName: 'example', quantity: 5}]
一个事务可以包含多个项目。我想根据每个 transactionId 遍历上面的列表。我想把一个交易变成这样的:
public class Transaction
{
public int transactionId {get;set;}
public List<Item> itemList = new List<Item>{};
}
对于每个唯一的 transactionid,遍历所有关联的项目并将它们放入 itemList 变量中。序列化后,您最终会得到:
[{transactionId: 1, {{itemName: 'foo', quantity: 5}, {itemName: 'bar', quantity: 5}},
transactionId: 2, {{itemName: 'example', quantity: 5}}}]
需要做的事情:遍历一个列表中的所有交易,并且对于每一个唯一的transactionid,把它的itemName和数量变量放在itemList对象中作为一个新的Item对象。比如:
foreach(unique transactionId in item)
{
item[transactionId].itemList.itemName = item[transactionId].itemName;
item[transactionId].itemList.quantity= item[transactionId].quantity;
}
我该怎么做?
【问题讨论】:
-
不应该
itemName和quantity是Item的一部分吗? -
错字!我编辑了代码。
-
所以真正的问题是您有一些格式错误的数据需要输入正确的格式?
-
听起来你需要
GroupBy -
你定义到Transaction类,先相互分离