Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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#_Dictionary_Properties - Fatal编程技术网

C# 如何获取字典属性值的字典?

C# 如何获取字典属性值的字典?,c#,dictionary,properties,C#,Dictionary,Properties,我有这个: public class GraphicsDraw { public Dictionary<int,GraphicItem> items { get; set; } } public abstract class GraphicItem { public float ItemSize { get; set; } } 有没有什么好方法可以让我在另一个字典中分别列出ItemSize,并使用相同的键和ItemSize值 Dictionary<int, f

我有这个:

public class GraphicsDraw
{
    public Dictionary<int,GraphicItem> items { get; set; }
}
public abstract class GraphicItem
{
    public float ItemSize { get; set; }
}
有没有什么好方法可以让我在另一个字典中分别列出ItemSize,并使用相同的键和ItemSize值

Dictionary<int, float> ItemSize = items.(???)
Dictionary ItemSize=项目。(?)

当然可以,使用
编辑:

items.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ItemSize);

当然可以,使用
ToDictionary

items.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ItemSize);

你可以这样做,使用LINQ

Dictionary<int,float> itemSizes = 
    items.ToDictionary(item => item.Key, item => item.Value.ItemSize);
Dictionary itemSizes=
items.ToDictionary(item=>item.Key,item=>item.Value.ItemSize);
ToDictionary
接受两个委托(或lambda表达式),第一个用于选择键,第二个用于选择字典的值


在您的例子中,您希望保留相同的键,但将值更改为
ItemSize
属性,从而使用第二个表达式。

您可以这样做,它使用LINQ

Dictionary<int,float> itemSizes = 
    items.ToDictionary(item => item.Key, item => item.Value.ItemSize);
Dictionary itemSizes=
items.ToDictionary(item=>item.Key,item=>item.Value.ItemSize);
ToDictionary
接受两个委托(或lambda表达式),第一个用于选择键,第二个用于选择字典的值


在您的情况下,您希望保留相同的键,但将值更改为
ItemSize
属性,从而使用第二个表达式。

您可以简单地使用LINQ从items属性提取必要的键和值

items.ToDictionary(x => x.Key, x => x.Value.ItemSize);

您可以简单地使用LINQ从items属性中提取必要的键和值

items.ToDictionary(x => x.Key, x => x.Value.ItemSize);

此帖子被自动标记为低质量,因为它只是代码。你介意用一些文字来扩展它吗?解释它是如何工作的/它是如何解决问题的?这篇文章被自动标记为低质量,因为它只是代码。您是否介意用一些文字来扩展它,解释它是如何工作的/它是如何解决问题的?