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