繁体   English   中英

影响作为参数传递给方法的ICollection吗?

[英]Affect an ICollection that is passed to a method as a parameter?

我有一个具有ICollection属性的类,该类在实例化该类时由构造函数分配,但是我想将此属性绑定到原始集合,以便在更新/更改它时,原始列表也是如此。 最好的方法是什么?

这是一个例子:

public class Organizations
{
    private ICollection<Organization> _orgs;

    public Organizations(ICollection<Organization> orgs)
    {
        _orgs = orgs;
    }

    public void TestAdd()
    {
        _orgs.Add(new Organization {Name = "Testing 123"});
    }
}


// in another class
public ActionResult TestApi()
{
    var tmp = new SyncTool.Core.Extensions.Zendesk.Organizations(ZendeskCache.Organizations.Data);
    var zd = ZendeskCache.Organizations.Data.FirstOrDefault(n => n.Name.Contains("Testing 123"));

    //ZendeskCache.Org.... is a List<Organization>

    return Json(new {data = "tmp" }, AG);
}

您传递给构造函数的List<Organization>是一个引用对象。 该代码以您想要的方式工作(除了语法错误),您是否尝试过?

复制更简单:

public class Program
{
    public static void Main(string[] args)
    {
        var orgs = new List<string>();
        var orgClass = new Organizations(orgs);
        orgClass.TestAdd();
        Console.WriteLine(orgs.First());
        Console.Read();
    }
}

public class Organizations
{
    private ICollection<string> _orgs;

    public Organizations(ICollection<string> orgs)
    {
        _orgs = orgs;
    }

    public void TestAdd()
    {
        _orgs.Add("Testing 123");
    }
}

//Output: "Testing 123"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM