【发布时间】:2023-03-21 22:37:01
【问题描述】:
我有一个具有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);
}
【问题讨论】:
-
有什么问题?这不工作吗?
-
正确,以上行不通。该列表不包含添加的项目。
-
这段代码似乎没有问题。访问
.First()时会抛出异常吗?你怎么知道它不起作用? -
我在我的代码中使用
FirstOrDefault,它返回null。我将使用更全面的示例更新 OP。 -
也许
ZendeskCache.Organizations.Data每次都会返回一个新集合?尝试将其放入像var collection = ZendeskCache.Organizations.Data;这样的变量中,然后使用collection变量作为Organizations的构造函数参数,并在测试它包含“Testing `12”值时使用。
标签: c# linq inheritance collections