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