C# 如何在C语言中使用List和Return List进行GroupBy?
这是我之前问的一个问题的后续问题。我的数据从JSON对象开始:C# 如何在C语言中使用List和Return List进行GroupBy?,c#,json,list,group-by,C#,Json,List,Group By,这是我之前问的一个问题的后续问题。我的数据从JSON对象开始: JSON {"page":"1", "per_page":10, "total":100, "total_pages":10, "data":[{"id":1, "userId":1, "userName":"Jim Silver", "timestamp":16425382171,
JSON
{"page":"1",
"per_page":10,
"total":100,
"total_pages":10,
"data":[{"id":1,
"userId":1,
"userName":"Jim Silver",
"timestamp":16425382171,
"txnType":"debit",
"amount":"$1,000.07",
"location":{"id":2,
"address":"654, Somewhere, Some Street",
"city":"Some City",
"zipCode":12345},
"ip":"202.210.105.105"},
{"id":2," ...}
{"id":3," ...}
...
{"id":n," ...}]
我需要在列表中输入用户ID和金额,我在这里已经完成了:
var model = JsonConvert.DeserializeObject<TxnResponse>(rawJSON);
var elements = model.data;
List<List<int>> userTxns = new List<List<int>>(elements.Count);
List<int> record = null;
int userID = 0;
int userAmount = 0;
for (int row = 0; row < elements.Count; row++)
{
userID = elements[row].userId;
userAmount = Convert.ToInt32(Math.Floor(decimal.Parse(model.data[row].amount, System.Globalization.NumberStyles.Currency)));
record = new List<int>();
record.Add(userID);
record.Add(userAmount);
userTxns.Add(record);
}
return userTxns.GroupBy();
如何根据用户ID进行分组?谢谢。这很有效
return userTxns.GroupBy(u => u[0], (key, values) => new List<int>
{
key,
values.Select(l => l[1]).Sum()
}).OrderBy(u => u[0]).ToList();
但是有16页的数据,我的REST调用只返回第一页。。。我将发布一个后续问题。您的TxnResponse类的定义是什么?@BrianRogers-我试图将上面的评论格式化为代码。。。我感谢你的关心;如果您将上述文本复制并粘贴到记事本中并执行一些格式化,您将看到结构。我很感激你能提供的一切。谢谢。@BrianRogers-我能够越过我的模型进入我的问题。再次感谢你或任何能提供指导的人。谢谢。谢谢你发布你的模型。我不确定我是否完全理解你的例子。您是否正在尝试对每个用户ID的金额求和?例如,如果原始数据中用户1的数量为100和200,用户2的数量为400和500,那么您的预期输出是否是像[[1300]、[2900]]这样的整数的二维列表?或者您真的是指组,您仍然希望看到每个用户的所有单独金额?是的,将每个位置ID的每个用户ID的金额相加,如[[1300],[2900],…]
return userTxns.GroupBy(u => u[0], (key, values) => new List<int>
{
key,
values.Select(l => l[1]).Sum()
}).OrderBy(u => u[0]).ToList();