【问题标题】:Reflection: Cast Array Of Objects To List反射:将对象数组转换为列表
【发布时间】:2012-09-07 05:51:30
【问题描述】:

代码:

object arrayOfObjs = new object[]{ 1, "test"};

现在我想向这个数组添加新元素。有没有可能:

((IEnumerable)arrayOfObjs).Cast<object>().ToList().Add("test123");

此代码不添加项目。

编辑:

如果我们将其设为强类型:

object arrayOfObjs = new string[]{ "1", "test"};

添加工作,谢谢:

var tmp = ((IEnumerable)arrayOfObjs).Cast<object>().ToList();
tmp.Add("test123");

如果在设计时类型未知,我们如何将此列表转换回 T 数组?

【问题讨论】:

    标签: .net reflection .net-3.5


    【解决方案1】:

    您需要在局部变量中捕获结果:

    var items = ((IEnumerable)arrayOfObjs).Cast<object>().ToList();
    
    items.Add("test123");
    

    【讨论】:

    • 谢谢。找到解决方案 var arr = Array.CreateInstance(tag.GetType().GetElementType(), tt.Count); Array.Copy(tt.ToArray(), arr, tt.Count);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多