想象一下,有一个类对象,就像一个Customer Class对象一样,它有很多属性...我有一个数组,它有一个序列中的数据。如何在一个循环中填充一个对象属性
我想调用一个属性,以便将数据传递给循环; PS:下面的代码只是一个演示文稿,我不打赌它是完全正确的。 关于。 bk 例如;
foreach(FormValueData item in formValues){
kkRow."AccountNumber" = item.AccountNumber
}
想象一下,有一个类对象,就像一个Customer Class对象一样,它有很多属性...我有一个数组,它有一个序列中的数据。如何在一个循环中填充一个对象属性
我想调用一个属性,以便将数据传递给循环; PS:下面的代码只是一个演示文稿,我不打赌它是完全正确的。 关于。 bk 例如;
foreach(FormValueData item in formValues){
kkRow."AccountNumber" = item.AccountNumber
}
如果你想循环对象的属性,你可以使用反射来做到这一点。下面是我写的一个扩展方法,用于将一个类的实例的属性复制到同一个类的另一个实例,它可能不是您想要做的,但您应该能够为您的目的修改它
public static TEntity CopyTo<TEntity>(this TEntity OriginalEntity, TEntity NewEntity)
{
PropertyInfo[] oProperties = OriginalEntity.GetType().GetProperties();
foreach (PropertyInfo CurrentProperty in oProperties.Where(p => p.CanWrite))
{
if (CurrentProperty.GetValue(NewEntity, null) != null)
{
CurrentProperty.SetValue(OriginalEntity, CurrentProperty.GetValue(NewEntity, null), null);
}
}
return OriginalEntity;
}
您可以使用GetMembers
方法的类型走出成员:
http://msdn.microsoft.com/en-us/library/xdtchs6z.aspx
然后,您可以调用该方法。
这里有一个博客贴子,讨论了这一点,并有一个样本:
http://www.dijksterhuis.org/exploring-reflection/
编辑:Ben的回答是更好的(至少如果它的所有属性),但我会在这里留矿情况下,信息是有用的。
“a”序列或特定序列?在这种情况下,哪个序列?与属性的字母顺序相同? – 2010-05-21 11:51:47
@顺序可能会改变顺序先生。问候。 – theklc 2010-05-21 11:57:31