【发布时间】:2016-12-01 18:46:52
【问题描述】:
我正在使用 C# MVC 5 razor 将一些数据显示到表格上。我正在使用(并且无法更改)的数据在 JSON 中如下所示:
[
{
"Status": "New",
"Denver": 2,
"Seattle": 0,
"New York": 3,
"El Paso": 0
},
{
"Status": "In Progress",
"Denver": 1,
"Seattle": 2,
"New York": 5,
"El Paso": 1
},
{
"Status": "Closed",
"Denver": 12,
"Seattle": 2,
"New York": 1,
"El Paso": 3
}
]
解析到这张表:
+-------------+--------+---------+----------+---------+
| Status | Denver | Seattle | New York | El Paso |
+-------------+--------+---------+----------+---------+
| New | 2 | 0 | 3 | 0 |
| In Progress | 1 | 2 | 5 | 1 |
| Closed | 12 | 2 | 1 | 3 |
+-------------+--------+---------+----------+---------+
我正在将此 json 反序列化为对象列表,但无法更改格式。我希望表格在视图中看起来像这样:
+----------+-----+-------------+--------+
| | New | In Progress | Closed |
+----------+-----+-------------+--------+
| Denver | 2 | 1 | 12 |
| Seattle | 0 | 2 | 2 |
| New York | 3 | 5 | 1 |
| El Paso | 0 | 1 | 3 |
+----------+-----+-------------+--------+
我尝试了多个 for 循环和 linq 选择,但无法获得它。 这是我得到的:
public class Response {
public string Status { get; set; }
public int Denver { get; set; }
public int Seattle { get; set; }
public int NewYork { get; set; }
public int ElPaso { get; set; }
}
public class ViewModel {
public string Name { get; set; }
public int New { get; set; }
public int InProgress { get; set; }
public int Closed { get; set; }
}
List<Response> response = service.GetData();
if (response != null) {
List<ViewModel> viewModels = response.Select(???);
}
return viewModels;
请有人用这个 select 语句为我指明正确的方向。谢谢!
【问题讨论】:
-
城市集是固定的吗?还是可以改变?
-
可以添加或删除 2 - 3 个城市名称,但每年只会发生一次,因此可以计划修复。