C# IEnumerable<T>,如何给T的成员/属性赋值
C# IEnumerable<T>, how to assign values to the members / properties of T
下面是我在 c# 中的结构
public class Search
{
public IEnumerable<Cars> Cardetail { get; set; }
}
public class Cars
{
public string Id{ get; set; }
public string StatusCode { get; set; }
}
现在我想将数据分配给单元测试的 Cars.Id 和 Cars.Status 代码
如何分配它,因为它是 IEnumerbale 的一部分
我试过了
new Search()
{
Cardetail = <IEnumerable> Cars{ Id ="1"} // but throws error
}
提前致谢
您需要选择一个实现 IEnumerable<T>
的 class - 最有可能的候选对象是数组或列表
var search = new Search()
{
Cardetail = new Cars[] { new Cars{ Id ="1"} }
};
或
var search = new Search()
{
Cardetail = new List<Cars> { new Cars{ Id ="1"} }
};
顺便说一句,class 的名字是单数的,所以 Car
而不是 Cars
var search = new Search
{
Cardetail = new Car[]
{
new Car
{
Id = "UniqueId",
StatusCode = "MyFancyStatusCode"
}
}
}
此代码应该可以实现您想要实现的目标。
在使用 new
关键字创建 class 的实例时,您可以使用 Object and Collection Initializers.
而不是写这个
var search = new Search();
search.Cardetail = ...
我们在花括号中赋值Cardetail
。
对于 Cardetail
我们必须决定要使用的实现,因为 Cardetail
是 IEnumerable<T>
类型,它是 Interface 并且我们不能创建接口实例.我们需要一个 实现 这个特定接口的类型,例如 Array
或 List<T>
(还有更多)。
下面是我在 c# 中的结构
public class Search
{
public IEnumerable<Cars> Cardetail { get; set; }
}
public class Cars
{
public string Id{ get; set; }
public string StatusCode { get; set; }
}
现在我想将数据分配给单元测试的 Cars.Id 和 Cars.Status 代码
如何分配它,因为它是 IEnumerbale 的一部分
我试过了
new Search()
{
Cardetail = <IEnumerable> Cars{ Id ="1"} // but throws error
}
提前致谢
您需要选择一个实现 IEnumerable<T>
的 class - 最有可能的候选对象是数组或列表
var search = new Search()
{
Cardetail = new Cars[] { new Cars{ Id ="1"} }
};
或
var search = new Search()
{
Cardetail = new List<Cars> { new Cars{ Id ="1"} }
};
顺便说一句,class 的名字是单数的,所以 Car
而不是 Cars
var search = new Search
{
Cardetail = new Car[]
{
new Car
{
Id = "UniqueId",
StatusCode = "MyFancyStatusCode"
}
}
}
此代码应该可以实现您想要实现的目标。
在使用 new
关键字创建 class 的实例时,您可以使用 Object and Collection Initializers.
而不是写这个
var search = new Search();
search.Cardetail = ...
我们在花括号中赋值Cardetail
。
对于 Cardetail
我们必须决定要使用的实现,因为 Cardetail
是 IEnumerable<T>
类型,它是 Interface 并且我们不能创建接口实例.我们需要一个 实现 这个特定接口的类型,例如 Array
或 List<T>
(还有更多)。