提取列表<list <double>以列出<double>

时间:2017-04-07 12:58:37

标签: c# .net

我正在尝试将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]
        }

3 个答案:

答案 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);
}

List.AddRange(collection As IEnumerable(Of T))方法的用法。

答案 2 :(得分:0)

如果要求仅仅是为了压扁锯齿状数组,那么SelectMany会有所帮助,但正如我所说,我的要求是数组数组。

我找到了答案:

double[][] lo = HereList.values.Select(a => a.ToArray()).ToArray();