Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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# 如何使用反射更新IList属性_C#_Reflection - Fatal编程技术网

C# 如何使用反射更新IList属性

C# 如何使用反射更新IList属性,c#,reflection,C#,Reflection,我有一个模型,它的属性是IList public class SomeClass { public IList<CustomClass> CustomProperty1 } 公共类SomeClass { 公共IList CustomProperty 1 } 使用反射,我需要向上述属性添加值。有什么建议吗?你不能通过IENUREABLE。它必须是IList或其他一些接口。您可以使用.Concat()linq方法来完成 SomeClass c = /* ... */ CustomC

我有一个模型,它的属性是IList

public class SomeClass
{
 public IList<CustomClass> CustomProperty1
}
公共类SomeClass
{
公共IList CustomProperty 1
}

使用反射,我需要向上述属性添加值。有什么建议吗?

你不能通过IENUREABLE。它必须是IList或其他一些接口。

您可以使用
.Concat()
linq方法来完成

SomeClass c = /* ... */
CustomClass[] extraItems = new CustomClass[] { /* ... */ };
c.CustomProperty1 = c.CustomProperty1.Concat(extraItems);
这不会向枚举表中添加更多项,而是分配一个新的枚举表,其中包含更多项


这不使用反射,但我假设您实际上不必使用反射。

为什么需要使用反射?使用普通代码不是更容易吗?这是当前的代码实现,有一个KeyValuePair和类实例,它具有要更新的属性。Joel是对的,你不能这样做。就目前而言,这个问题对社会没有什么价值。也许您可以向我们展示您的真实代码,我们可以在其他选项上帮助您?IEnumerable可以通过多种方式实现。甚至不需要有一个后备场。没有源代码或反汇编,你就不知道这是否可能。@TusharJ-现在你的问题有点可笑了。如果返回类型是
IList
,则不需要反射。只需使用
。添加(…)
。你能根据你的真实代码问出真实的问题吗?这在技术上是正确的,但是OP确实把他的问题“简化”了很多,以至于我怀疑他所问的并不是他想要做的。