例如list>的怎样的实现赋值

不吃青菜的兔子 2012-04-15 10:12:01
在我的代码中定义了一个HealthCheckSet<List<HealthCheckItem>>泛型类,在HealthCheckSet下有三个name ,price ,HealthCheckItem对象的三个属性,而在HealthCheckItem中也有两个name,price属性,那么怎样才能给这样一个HealthCheckSet<List<HealthCheckItem>> hcs=new HealthCheckSet<List<HealthCheckItem>>()泛型集合添加元素呢?求解
...全文
425 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-04-15
  • 打赏
  • 举报
回复
你应该这么设计:

class CheckSet<T> where T : IHavePriceField
{
public List<T> Items { get; set; }
public string Name { get; set; }
public double Price { get { return Items.Sum(x => x.Price); } }
public CheckSet() { Items = new List<T>(); }
}
interface IHavePriceField
{
double Price { get; set; }
}
class HealthCheckItem : IHavePriceField
{
public string Name { get; set; }
public double Price { get; set; }
}
class HealthCheckSet : CheckSet<HealthCheckItem>
{

}


然后添加:
HealthCheckSet hcs = new HealthCheckSet()
{
Name = "xxx",
Items = new List<HealthCheckItem>()
{
new HealthCheckItem() { Name = "aaa", Price = 1.5 },
new HealthCheckItem() { Name = "bbb", Price = 2.4 },
new HealthCheckItem() { Name = "ccc", Price = 3.3 },
new HealthCheckItem() { Name = "ddd", Price = 4.2 }
}
};
  • 打赏
  • 举报
回复
那么就比如上述的这样一个例子,你能用泛型集合给我讲解下如何定义和往集合里添加元素
threenewbee 2012-04-15
  • 打赏
  • 举报
回复
HealthCheckSet<List<HealthCheckItem>>
这根本不是泛型类。

你这么定义连编译都编译不了。语法还没有搞清楚还有什么好谈的。
  • 打赏
  • 举报
回复
鉴于二楼的说法,那么我HealthCheckSet集合中还有两个属性name和price的值怎么添加进去
  • 打赏
  • 举报
回复
HealthCheckSet中有一个name属性和一个price属性还有一个list<HealthCheckItem>集合对象
threenewbee 2012-04-15
  • 打赏
  • 举报
回复
HealthCheckSet的定义是什么?
  • 打赏
  • 举报
回复
你的代码中是不是提及到了接口?我现在才刚学习泛型集合,虽然不是完全理解你的代码,但还是很感谢你!
EnForGrass 2012-04-15
  • 打赏
  • 举报
回复
最直观的写法
先添加List<HealthCheckItem>
List<HealthCheckItem> hlist=new List<HealthCheckItem>();
hlist.Add(HealthCheckItem1);//HealthCheckItem1,HealthCheckItem2是HealthCheckItem类型的
hlist.Add(HealthCheckItem2);
HealthCheckSet<List<HealthCheckItem>> hcs=new HealthCheckSet<List<HealthCheckItem>>()
hcs.Add(hlist);
List不能赋值List List<String>不能赋值List<Object> 1.首先,二者不是父子类关系。 如果是普通的父子类关系,由于Java的多态性,底层的后期绑定机制会在运行时检索子类方法列表,从而实现多态。 2.List<T>属于泛型。(也算是多态的...

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧