我正在尝试将json反序列化,如下所示
[{"HereList":{"values":[[13.38,52.51],[13.428,52.523]]},"type":"double"}]
如下
public class HereList
{
public List<List<double>> values { get; set; }
public string type { get; set; }
}
有人可以指导如何在这里将值([[a,b],[c,d]])提取到单个列表中。
试过这样的事情
HereList ge = new HereList();
var x = ge.values;
foreach(var val in x)//[13.38,52.51]
{
//Pupulate List<double> with //[13.38,52.51]
}
答案 0 :(得分:3)
使用IEnumerable<T>.SelectMany
。
HereList ge = new HereList();
var allValues = ge.values.SelectMany(x => x).ToList();
答案 1 :(得分:2)
根据您更新的问题和代码示例,以下内容应该有效。
要提取内部列表(假设您要忽略模型其余部分中的信息)并将所有信息放在一个大列表中,您可以执行以下操作:
// Variables from your model
HereList yourCustomModel = new HereList();
List<List<double>> values = yourCustomModel.values;
// Create a new list to store your values in
List<double> allValuesInOneSingleList = new List<double>();
// Loop through each list in values and add it to your one big list
foreach(List<double> innerList in values)
{
allValuesInOneSingleList.AddRange(innerList);
}
答案 2 :(得分:0)
如果要求仅仅是为了压扁锯齿状数组,那么SelectMany会有所帮助,但正如我所说,我的要求是数组数组。
我找到了答案:
double[][] lo = HereList.values.Select(a => a.ToArray()).ToArray();