Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中如何将字典(以数组为值)转换为列表_C#_Arrays_List_Dictionary - Fatal编程技术网

C# C语言中如何将字典(以数组为值)转换为列表

C# C语言中如何将字典(以数组为值)转换为列表,c#,arrays,list,dictionary,C#,Arrays,List,Dictionary,我需要将字典转换为列表,以便将其绑定到网格 我的字典以字符串作为键,以一个双精度数组作为值 我可以使用字典上的ToList函数将字典转换为列表,但当我将其绑定到网格时,数组将在网格列中显示为对象 如何将double数组中的值添加到列表中?在将字典转换为列表的同时,是否有办法将数组值提取到列表中 这就是我目前正在做的: List<KeyValuePair<string, double[]>> dataList = dataDicti

我需要将字典转换为列表,以便将其绑定到网格

我的字典以字符串作为键,以一个双精度数组作为值

我可以使用字典上的ToList函数将字典转换为列表,但当我将其绑定到网格时,数组将在网格列中显示为对象

如何将double数组中的值添加到列表中?在将字典转换为列表的同时,是否有办法将数组值提取到列表中

这就是我目前正在做的:

List<KeyValuePair<string, double[]>> dataList = 
                    dataDictionary.ToList<KeyValuePair<string, double[]>>();
我需要在数组中保留字符串和两个double值double数组的大小为2,以便在网格中显示

我已经看过了,但无法实现我所需要的:

如有任何建议或帮助,将不胜感激

提前感谢,

马尔万

PS-我还考虑过将字典转换为数据表,以便将其绑定到网格,但我不确定这是否可行。

尝试以下方法:

IList<double> list = dictionary.SelectMany(item => item.Value).ToList();
    Dictionary<string, double[]> dict = new Dictionary<string, double[]>()
    {
        {"a",new double[]{1,2}},
        {"b",new double[]{3,4}}
    };
        List<Tuple<string, double, double>> list = dict.Select(kvp => Tuple.Create(kvp.Key, kvp.Value[0], kvp.Value[1])).ToList();
试试这个:

    Dictionary<string, double[]> dict = new Dictionary<string, double[]>()
    {
        {"a",new double[]{1,2}},
        {"b",new double[]{3,4}}
    };
        List<Tuple<string, double, double>> list = dict.Select(kvp => Tuple.Create(kvp.Key, kvp.Value[0], kvp.Value[1])).ToList();
这个怎么样

public class HelperClass
{
    private readonly KeyValuePair<string, double[]> Item;

    [Bindable]
    public string Key { get { return Item.Key; } }

    [Bindable]
    public double Value1 {get { return Item.Value[0]; } }

    [Bindable]
    public double Value2 {get { return Item.Value[1]; } }

    public HelperClass(KeyValuePair<string, double[]> item)
    {
        this.Item = item;
    }
}

public List<HelperClass> Convert(Dictionary<string, double[]> items)
{
    var result = new List<HelperClass>(items.Count);
    foreach(var item in items)
        result.Add(new HelperClass(item));
    return result;
}
现在您可以将网格绑定到列表了

这个呢

public class HelperClass
{
    private readonly KeyValuePair<string, double[]> Item;

    [Bindable]
    public string Key { get { return Item.Key; } }

    [Bindable]
    public double Value1 {get { return Item.Value[0]; } }

    [Bindable]
    public double Value2 {get { return Item.Value[1]; } }

    public HelperClass(KeyValuePair<string, double[]> item)
    {
        this.Item = item;
    }
}

public List<HelperClass> Convert(Dictionary<string, double[]> items)
{
    var result = new List<HelperClass>(items.Count);
    foreach(var item in items)
        result.Add(new HelperClass(item));
    return result;
}

现在您可以将网格绑定到列表

您可以使用元组:

var result = dataDictionary.Select(x => Tuple.Create(x.Key, x.Value[0], x.Value[1]))
                           .ToList();

您可以为此使用元组:

var result = dataDictionary.Select(x => Tuple.Create(x.Key, x.Value[0], x.Value[1]))
                           .ToList();
要列出的词典

字典到数据表

希望这有助于列出词典

字典到数据表


希望这有帮助

我不太清楚你想要实现什么。您的问题看起来好像希望将键和值混合在一个列表中。将其绑定到网格将导致一列中包含键和值。这似乎没有什么意义。也许你可以再详细一点?@DanielHilgarth-嗨,丹尼尔。我试图让每个键字符串和值double[0]和double[1]显示在自己的行中,但显示在单独的列中。我希望这有助于澄清一点:-在我上面的代码中,我可以将字典转换为列表。当我将列表绑定到网格时,它在一列中显示键字符串,大小为2的值double数组在另一列中,但它显示为数组对象值不可见。我需要数组中的值显示在它们自己的列中。@DanielHilgarth-这工作得很好。谢谢。我不太清楚你想要实现什么。您的问题看起来好像希望将键和值混合在一个列表中。将其绑定到网格将导致一列中包含键和值。这似乎没有什么意义。也许你可以再详细一点?@DanielHilgarth-嗨,丹尼尔。我试图让每个键字符串和值double[0]和double[1]显示在自己的行中,但显示在单独的列中。我希望这有助于澄清一点:-在我上面的代码中,我可以将字典转换为列表。当我将列表绑定到网格时,它在一列中显示键字符串,大小为2的值double数组在另一列中,但它显示为数组对象值不可见。我需要数组中的值显示在它们自己的列中。@DanielHilgarth-这工作得很好。谢谢