课程列表

时间:2015-12-02 21:23:39

标签: c# asp.net foreach

我有一个类似的课程:

public class OverDueClass
{
     public int CustomerID { get; set; }
     public int Question_ID { get; set; }
     public string Department { get; set; }
     public DateTime DueDate { get; set; }
}

我正在填充这个类并将其传递给另一个方法:

while (dataReader.Read())
{
      OverDueClass overDueItem = new OverDueClass();

      overDueItem.CustomerID = (int)dataReader[0];
      overDueItem.Question_ID = (int)dataReader[1];
      overDueItem.Department = dataReader[2].ToString();
      overDueItem.DueDate = (DateTime)dataReader[3];

      OverDueCell.Add(overDueItem);
}  

sendEmail("fake@email.com", OverDueCell);

现在在另一种方法中,我可以看到数据正在传递。

现在我正在尝试运行foreach来处理数据并尝试以下操作:

foreach(string item in overDue)
{

}

但是我收到了这个错误:

  

无法将类型转换为字符串。

2 个答案:

答案 0 :(得分:3)

如果overDueOverDueCell,那么string中的OverDueClass更改为foreach,如下所示:

foreach(OverDueClass item in overDue)
{

}

或使用var关键字:

foreach(var item in overDue)
{

}

答案 1 :(得分:0)

如果您尝试通过OverDueTtems集合进行迭代:

foreach(var item in overDueItemsCollection)
{
    ...
}

如果您尝试迭代OverDueItem的属性:

PropertyInfo[] properties = typeof(overDueItem).GetProperties();
foreach (PropertyInfo property in properties)
{
    var value = property.GetValue(overDueItem);
    ...
}