无法将 DynamicEntity 添加到通用列表

Cannot add DynamicEntity to Generic List

我有一个特殊的问题...

Szenario:我有一个 Contentype,它有两个 Entity-Fields。其中一个 Entityfields 已填充,一个是 empty.I 获得了数据(作为名为 result1 的 DynamicEntity)。对于空的实体字段,我在方法中得到了一个默认值(作为名为 result2 的 DynamicEntity)。现在我想在 result1 中为空 属性 添加 result2。 add-method 没有抛出错误,但 属性 仍然为空...

示例: 内容类型命名为 Header.

字段:标题(字符串)、字体(实体字段)、颜色(实体字段)

数据:"Title",从 Contenttype 字体中选择了一项,未选择任何内容。

我将数据提取到 result1 中。结果 1 来自类型 ToSic.SexyContent.DynamicEntity

result1.Font 是 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 类型,我可以访问 result1.Font[0].Name 并获得值

result1.Color 是类型 System.Collections.GenericList`1[ToSic.SexyContent.DynamicEntity] 和值 null (result1.Color.Count 给我 0)

result2 来自类型 ToSic.SexyContent.DynamicEntity

现在我想用 result1.Color.Add(result2) 添加 result2;结果 1。没有错误,但没有任何反应。当我尝试访问 result1.Color[0].name 时出现错误 System.ArgumentOutOfRangeException...

有什么提示吗?

据我了解,您有两个实体列表,想要合并它们以便稍后输出。

如果我也没有理解错的话,其中一个列表是现有实体上的 属性 - 类似于 Team.Members - 而你试图添加其他实体 - 比方说 Team.Leaders - 到 Team.Members 集合,对吗?

在这种情况下,您的错误是试图修改实体 -属性 并增强它,因为实体及其数据是只读的。

您所要做的就是为这些实体创建一个新的 list/collection,然后循环遍历它。您可以像 List<DynamicEntity> xyz = new List<DynamicEntity>(); 一样手动执行此操作并添加内容,或者您​​可以使用 LINQ 来做同样的事情。