我有一个像这样的简单 POCO:
[JsonObject(NamingStrategyType = typeof (CamelCaseNamingStrategy))]
public class MyType
{
public string Id { get; set; }
public string Name;
[JsonExtensionData(ReadData = true, WriteData = true)]
public IDictionary<string, object> TypeDetails { get; set; }
}
还有一个方法给我一个 MyType
的列表
我正在尝试返回 Dictionary<string,object>
的列表我得到的对象列表的所有类型详细信息。
像这样:
types.Select((myType) => myType.TypeDetails)
但是,当我运行它时,我得到的是一个字典列表,但具有以下形状:
[
{TypeDetails: {the dictionary i want},
{TypeDetails: {the dictionary i want}},
(...)
]
我期待的是:
[
{the dictionary i want},
{the dictionary i want},
(...)
]
澄清一下:我希望这是真的:
types[0].TypeDetails.equals(r[0])
和我做的一样
types.Select((myType) => new {myType.TypeDetails})
如果我获得任何其他属性,则选择的行为与我预期的一样。 我找不到任何表明字典是否得到特殊对待的文档,也找不到任何其他关于为什么会发生这种情况的线索。
最佳答案
使用.SelectMany()在字典的值上,像这样:
types.SelectMany((myType) => myType.TypeDetails.Values)
关于c# - LINQ 在选择字典属性时创建新的匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338965/