如何将对象添加到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; }
}
答案 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。