如何将对象添加到另一个对象的集合中?

时间:2018-08-10 14:34:28

标签: c# object collections

如何将对象添加到ICollection属性?我需要先初始化ICollection吗?如果可以,怎么办?

我有一个类'foo',它具有一个名为'bar'的it('should have been called with data', async () => { const data = {}; await service.methodWhichCallsDependencysaddNewPaymentMethod(data); expect(addNewPaymentMethod).toHaveBeenCalledWith(data); }); 属性。我还有一个单独的对象集合,其中包含反序列化的excel数据。我想使用此数据填充ICollection<bar>属性。

假设我有一个名为{fooexample'的ICollection<bar> bar实例,那么我试图通过使用'fooexample.bar.id'向foo赋值,但是我知道这在语法上是不正确的

foo类

ICollection<bar> bar

课程栏

public class foo 
{     
    public int id { get; set; }
    public string name { get; set; } 
    public ICollection<bar> bar { get; set; }
}

从另一个对象添加对象

public class bar 
{
    public int id { get; set; }
    public string name{ get; set; } 
}

1 个答案:

答案 0 :(得分:1)

给我的印象是您实际上不需要收藏,因此您可以执行以下操作。

foo类

public class foo 
{     
    public int id { get; set; }
    public string name { get; set; } 
    public bar bar { get; set; }
}

从另一个对象添加对象

exceldata = ParseDocument.Parse(filestream);
foo fooexample = new foo();
foreach (var object in exceldata)
{
    fooexample.id = object.id;
    fooexample.bar = new bar();
    fooexample.bar.id = object.bar.id;
}

C#中有一个快捷方式来实例化对象并将其属性设置在一行上,这样您就可以选择

exceldata = ParseDocument.Parse(filestream);
foo fooexample = new foo();
foreach (var object in exceldata)
{
    fooexample.id = object.id;
    fooexample.bar = new bar({id = object.bar.id});
}

或使用收藏集

foo类

public class foo 
{     
    public int id { get; set; }
    public string name { get; set; } 
    public ICollection<bar> bar { get; set; }
}

从另一个对象添加对象

exceldata = ParseDocument.Parse(filestream);
foo fooexample = new foo();
fooexample.bar = new List<bar>();
foreach (var object in exceldata)
{
    fooexample.id = object.id;
    fooexample.bar.Add(new bar({id = object.bar.id}));
}

正如其他人指出的那样,您可以选择在'foo'类中初始化List。