C# [{"a":"现金","b":"35.11"},{"a":"农行","b":"2.11"},{"a":"现金","b":"35.11"}] 根据数组对象的key 的值相等 ,b的数值相加 拼成一个对象 怎么做
时间: 2024-04-14 12:23:43 浏览: 13
你可以使用C#中的LINQ来实现对数组对象的操作。首先,你需要将JSON数组转换为C#对象。然后,使用LINQ的GroupBy方法按照key值进行分组,并使用Sum方法对每个分组的b值进行求和。最后,将结果拼装成一个新的对象。
以下是一个示例代码:
```csharp
using System;
using System.Linq;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
string json = @"[
{""a"":""现金"",""b"":35.11},
{""a"":""农行"",""b"":2.11},
{""a"":""现金"",""b"":35.11}
]";
var objects = JsonConvert.DeserializeObject<MyObject[]>(json);
var result = objects.GroupBy(obj => obj.a)
.Select(group => new {
a = group.Key,
b = group.Sum(obj => obj.b)
});
string resultJson = JsonConvert.SerializeObject(result);
Console.WriteLine(resultJson);
}
}
public class MyObject
{
public string a { get; set; }
public decimal b { get; set; }
}
```
运行以上代码,你将得到以下输出:
```json
[{"a":"现金","b":70.22},{"a":"农行","b":2.11}]
```
这个输出是根据数组对象的key值相等,b的数值相加拼成的新对象。