怎样给类成员动态赋值?100分送上!

jshyjyw 2013-03-21 02:36:29
/// <summary>
/// 实现IComparable接口,用kcNum做比较
/// </summary>
/// <param name="obj">比较对象</param>
/// <returns>比较结果</returns>
public class KeChen : IComparable
{
public string kcName { get; set; }
public int kcNum { get; set; }
public int CompareTo(object obj)
{
if (obj is KeChen)
{
return kcNum.CompareTo(((KeChen)obj).kcNum);
}
return 1;
}
}


……

string strkc = "";
//初始化课程类并排序 成绩提高最明显的课程
KeChen[] KC = new KeChen[] {
new KeChen(){kcName="基础护理",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][7])},
new KeChen(){kcName="外科护理",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][8])},
new KeChen(){kcName="内科护理",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][9])},
new KeChen(){kcName="妇科护理",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][10])},
new KeChen(){kcName="儿科护理",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][11])},
new KeChen(){kcName="其它",kcNum=Convert.ToInt32( ds2.Tables[0].Rows[0][12])}};

Array.Sort(KC);
Array.ForEach<KeChen>(KC, (m) =>
{
strkc = strkc + m.kcName +" "+ m.kcNum.ToString()+" ";
});

现在想把从数据库搜索出来的记录给类的成员动态赋值,循环语句应该怎么写?我试着写了下,报错。
for (int i = 0; i < ds.Tables["BB"].Rows.Count; i++)
{
// new KeChen() { kcName = ds.Tables["BB"].Rows[i][1].ToString(), kcNum = strTnum1[i] };
T1[i].kcName = ds.Tables["BB"].Rows[i][1].ToString();
T1[i].kcNum = strTnum1[i];
}

请教,应该怎么样写?
...全文
63 点赞 收藏 5
写回复
5 条回复
md5e 2013年03月21日
public IList<T> GetModelList<T>(string table, int rowpage, int rowcount, string orderFid, string Conditions, Type type) { List<T> list = new List<T>(); using (NullableDataReader reader = GetinfoListByReader(table, rowpage, rowcount, orderFid, Conditions)) { while (reader.Read()) { object obj = Activator.CreateInstance(type); foreach (PropertyInfo proper in type.GetProperties()) { if (reader.IsDBNull(proper.Name) != null && !reader.IsDBNull(proper.Name)) proper.SetValue(obj, reader.GetValue(proper.Name), null); } list.Add((T)obj); } return list; } } Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType(); return dal.GetModelList<ba_countyinfo>("[ba_county]", pageindex, pagesize, ordfid, cond, type);
回复 点赞
litojoe 2013年03月21日
类里面加个索引好吗?
回复 点赞
llsus 2013年03月21日
你应该用集合类来解决,类的构造函数收入你的属性值。实话跟你说吧,你那个T[i].XX=??看着都不舒服。必须修改成员的值才需要这样做。
回复 点赞
人傻且呆但不萌 2013年03月21日
把list清空,然后新生成对象,然后添加到list里面去
回复 点赞
gxingmin 2013年03月21日
KeChen []kc=new KeChen[ds.Tables["BB"].Rows.Count]; for (int i = 0; i < ds.Tables["BB"].Rows.Count; i++) { kc[i]= new KeChen() { kcName = ds.Tables["BB"].Rows[i][1].ToString(), kcNum = strTnum1[i] }; //T1[i].kcName = ds.Tables["BB"].Rows[i][1].ToString(); //T1[i].kcNum = strTnum1[i]; }
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告