怎样给类成员动态赋值?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];
}

请教,应该怎么样写?
...全文
126 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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=??看着都不舒服。必须修改成员的值才需要这样做。
  • 打赏
  • 举报
回复
把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]; }

110,533

社区成员

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

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

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