我有一个像这样的文本字符串,它可以更大。同一个UserID可以出现多次。
[{"标识":"400","用户名":"john doe"、"GroupID":"11","GroupName":"失踪","钱":" 2300 "},{"标识":"500","用户名":"乔恩doe"、"GroupID":"12","GroupName":"失踪","钱":" 2400 "},{"标识":"600","用户名":"珍doe"、"GroupID":"13"、"GroupName":"失踪","钱":" 1100 "},{"标识":"400","用户名":"john doe"、"GroupID":"11","GroupName":"失踪","钱":" 1400 "})
我想把这个排序一下,这样可以问LINQ关于它的问题。
类似于所有UserID的钱的总和,UserID的钱和用户名的总和。
我应该把它放在一个类中吗?或者最好的方法是什么?
我应该把它放在一个类中吗?或者最好的方法是什么?
- 这可能是你想要做的第一步。 下一步可能是将JSON转换为你的类
- 对结果进行排序和分组
- 启动应用程序逻辑,如求和等
如果您要经常处理这些对象,那么我肯定会创建类来表示它们,以便更容易反序列化JSON字符串。如果没有,那你可以快速地滚一些脏东西。无论哪种方式,我想你都会想要使用Json。网库;这会让你的生活更轻松。通过在包管理器控制台中运行以下命令将其安装到项目中:
Install-Package Newtonsoft.Json
对于快速和肮脏的解决方案,给定一个名为json
的字符串,您可以这样做:
Newtonsoft.Json.Linq // Namespace
.JArray // Class
.Parse(json) // Static method to parse string into a JArray
.Select(x => new // Select anonymous types
{
UserId = x["UserID"],
Username = x["username"],
GroupId = x["GroupID"],
GroupName = x["GroupName"],
Money = x["Money"],
})
.GroupBy(x => x.UserId) // Group by user id.
.ContinueWithRemainingQuery();