目前正在努力解决问题。 我在一个数组中有30个对象。 data [],每个对象有24小时。 “Hour00”,“Hour01”等。我想迭代这几个小时。 if(data [i] .Hour00> something) 但似乎我不能轻易地增加它。我尝试使用下面的代码,但它不允许我使用字符串“b”来定义我想要提取的小时数。
for(int k = 0; k < 24; k++)
{
string b = "Hour00";
if(data[i].b > 20){
*Something happens*
}
也尝试过:
for(int k = 0; k < 24; k++)
{
if(data[i].Hour(k) > 20){
*Something happens*
}
答案 0 :(得分:1)
考虑一个示例类Item
public class Item
{
public int Hour0 { get;set;}
public int Hour1 { get;set;}
public int Hour2 { get;set;}
}
使用反射,您可以迭代HourXX
道具:
var item = new Item { Hour0 = 10, Hour1 = 15, Hour2 = 20 };
for (int i = 0; i <= 2; i++)
{
var hourPropValue = typeof(Item).GetProperty("Hour" + i).GetValue(item);
// Conditional code here
}
答案 1 :(得分:0)
根据您的评论,据我所知。假设属性Hour00..Hour23持有整数值:
int day = DateTime.Today.Day;
for (int i=0; i<24; i++){
int value = data[day].GetType().GetProperty(string.Format("Hour{0:00}",i)).GetValue(data[day], null);
}