江湖救急,急。如何遍历,并“循环设置属性”?

starrydatagrid 2012-08-01 02:01:37
有一个类,它有35个属性,如下:

public class ColumnModel
{
public string Column0 { get; set; }
public string Column1 { get; set; }
public string Column2 { get; set; }
public string Column3 { get; set; }
public string Column4 { get; set; }
public string Column5 { get; set; }
public string Column6 { get; set; }
public string Column7 { get; set; }
public string Column8 { get; set; }
public string Column9 { get; set; }
public string Column10 { get; set; }
public string Column11 { get; set; }
public string Column12 { get; set; }
public string Column13 { get; set; }
public string Column14 { get; set; }
public string Column15 { get; set; }
public string Column16 { get; set; }
public string Column17 { get; set; }
public string Column18 { get; set; }
public string Column19 { get; set; }
public string Column20 { get; set; }
public string Column21 { get; set; }
public string Column22 { get; set; }
public string Column23 { get; set; }
public string Column24 { get; set; }
public string Column25 { get; set; }
public string Column26 { get; set; }
public string Column27 { get; set; }
public string Column28 { get; set; }
public string Column29 { get; set; }
public string Column30 { get; set; }
public string Column31 { get; set; }
public string Column32 { get; set; }
public string Column33 { get; set; }
public string Column34 { get; set; }
}

功能要求:

声明一个该类的实体集 “List<ColumnModel> columnmodellists”,并填充值,填充规则如下。


1、声明循环变量“i”,其初始值为“0”。循环为“ColumnModel”的35个属性赋值。

2、当“i”为“0”时,为“Column0”属性赋值。

当“i”为“1”时,为“Column1”属性赋值。

当“i”为“2”时,为“Column2”属性赋值。

以此类推............................................

当“i”为“34”时,为“Column34”属性赋值。


代码片段如下:

List<ColumnModel> columnmodellists = new List<ColumnModel>();

columnmodellists.Clear();

ColumnModel columnmodel = new ColumnModel();

for(int i=0; i<35 ; i++)

{

columnmodel.??????? = i.ToString();

问题:这里的属性名应该如何指定??? 属性名也不能拼接字符串啊,怎么办???


}

columnmodellists.Add(columnmodel);

如何这样循环赋值???
...全文
466 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
别走啊互联网 2012-08-02
  • 打赏
  • 举报
回复
为什么如此有规律的属性不直接用数组代替?本人有点愚钝的问
laokaizzz 2012-08-02
  • 打赏
  • 举报
回复
这,哎,啊
xiangfei_gong 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
反射。
不过我恕我愚钝,本人真不知道为何会出现这种需求


这就说明,相当多的人写程序停留在“编译通过,出正确结果”这个层次上,有些人根本不愿意学习,了解点皮毛就“做项目来锻炼锻炼”。他们解决问题的办法就是创造新的问题。
所以他们写的程序的规模有限,为什么呢?因为项目越大,他们不会的越多,解决问题过程中创造出来的新问题也就越多。当创造问题的速度超过解决问题的速度……
[/Quote]
受教了
  • 打赏
  • 举报
回复
其实这种情况下还是把东西转换成可绑定的datatab然后操作比较好。
SocketUpEx 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 的回复:]

数组不能作实体集绑定到“DataGrid”的列啊。。。
[/Quote]

明白了
如果使用数组绑定到DataGrid后,会变成行,那不是行了

  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

嗯,反射是个必需会用的东西
[/Quote]
反射的坏处也是显而易见的~~~
不知道楼主怎么会出现这么怪异的需求
starrycheng 2012-08-02
  • 打赏
  • 举报
回复
数组不能作实体集绑定到“DataGrid”的列啊。。。
hfdsoft 2012-08-01
  • 打赏
  • 举报
回复
我靠,解决了还不结帖。
zypine 2012-08-01
  • 打赏
  • 举报
回复
给你一段代码,以前一个特殊项目的时候写的

public object CallByName(object ObjectRef, string ProcName, Easyteam.General.CallType callType, object[] Args)
{
switch (callType)
{
case Easyteam.General.CallType.Method:
MethodInfo objMI;
objMI = ObjectRef.GetType().GetMethod(ProcName);
if (objMI == null)
{
return null;
}
return objMI.Invoke(ObjectRef, Args);

case Easyteam.General.CallType.Set:
PropertyInfo objProperty;
objProperty = ObjectRef.GetType().GetProperty(ProcName);
if (objProperty == null)
{
FieldInfo field = ObjectRef.GetType().GetField(ProcName);
if (field == null)
{
return null;
}
field.SetValue(ObjectRef, Args[0]);
return null;
}
objProperty.SetValue(ObjectRef, Args[0], null);
break;
case Easyteam.General.CallType.Get:
objProperty = ObjectRef.GetType().GetProperty(ProcName);
if (objProperty == null)
{
FieldInfo field = ObjectRef.GetType().GetField(ProcName);
if (field == null)
{
return null;
}
return field.GetValue(ObjectRef);

}
return objProperty.GetValue(ObjectRef, null);

default:
break;
}
}
return null;
}
zypine 2012-08-01
  • 打赏
  • 举报
回复
反射用得最多的是在大型系统中需要支持二次开发的时候需要用到,有些特殊的需求也可能需要用到反射。一般的小程序少用为妙,也没必要用
lrxin 2012-08-01
  • 打赏
  • 举报
回复
先要会解决问题,再去思想更好的解决方法。
一步登天,圣人都不行。
cheng2005 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
嗯,反射是个必需会用的东西
[/Quote]
哪个欠抽的人说的,难道没有反射的语言就没法活了?
SocketUpEx 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

嗯,反射是个必需会用的东西
[/Quote]

不是必需的
少用

dyk 2012-08-01
  • 打赏
  • 举报
回复
嗯,反射是个必需会用的东西
dyk 2012-08-01
  • 打赏
  • 举报
回复
嗯,反射是个必需会用的东西
threenewbee 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
该方法用于“Silverlight”中“DataGrid”的列绑定,List<String> ColumnList属性能绑定到列吗???[/Quote]

这就是胶水程序员的思维。所有的编码都是为了凑合着把各种东西黏上。代码的形状取决于这些东西的空隙。
他能做的功能就是这些组件的兼容性的交集——东西越多,它们被粘上的可能性就越低。A需要这样才能粘上,B非要那样才能粘上,于是就粘不上了。
yezhendong185 2012-08-01
  • 打赏
  • 举报
回复
顿悟了。
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
反射。
不过我恕我愚钝,本人真不知道为何会出现这种需求


这就说明,相当多的人写程序停留在“编译通过,出正确结果”这个层次上,有些人根本不愿意学习,了解点皮毛就“做项目来锻炼锻炼”。他们解决问题的办法就是创造新的问题。
所以他们写的程序的规模有限,为什么呢?因为项目越大,他们不会的越多,解决问题过程中创造出来的新问题也就越多。当创造问题的速度超过解决问题的速度……
[/Quote]
starrycheng 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

这么属性,还不搞成一个List<String> ColumnList属性
[/Quote]

该方法用于“Silverlight”中“DataGrid”的列绑定,List<String> ColumnList属性能绑定到列吗???
shilei831115 2012-08-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 2 楼 的回复:
反射。
不过我恕我愚钝,本人真不知道为何会出现这种需求


这就说明,相当多的人写程序停留在“编译通过,出正确结果”这个层次上,有些人根本不愿意学习,了解点皮毛就“做项目来锻炼锻炼”。他们解决问题的办法就是创造新的问题。
所以他们写的程序的规模有限,为什么呢?因为项目越大,他们不会的越多,解决问题过程中创造出来的新问题也就越多。当创造问题的速度超过解决问题的速……
[/Quote]

码农…… 和农民工大叔们同伍了……
SocketUpEx 2012-08-01
  • 打赏
  • 举报
回复
这么属性,还不搞成一个List<String> ColumnList属性

加载更多回复(7)

110,525

社区成员

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

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

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