我无法理解为什么会出现这种错误:
public string GetStatusText(string abc) {
string status = "";
STATUSDTO StatusList = new STATUSDTO();
StatusList.LoadByMasterWayBill(abc);
// this method return List<STATUSDTO>
bool has190s = false;
bool hasother = false;
foreach(V_TMSDetail_STATUSDTO v in StatusList) {
if (v.Status == "190" || v.Status == "191") has190s = true;
else hasother = true;
}
if (has190s && hasother) status = "Partially Submitted";
else if (has190s && !hasother) status = "Submitted";
else if (!has190s && hasother) status = "Not Submitted";
return status;
}
当我编译这个程序时,它给了我这个错误:
foreach语句不能对类型变量进行操作,因为它不包含&#39; GetEnumerator&#39;的公共定义。
请帮我解决。
答案 0 :(得分:0)
基于悬挂评论的猜测... StatusList
没有实现枚举器。我猜你试图遍历LoadByMasterWayBill
var myList = StatusList.LoadByMasterWayBill(abc);
foreach(V_TMSDetail_STATUSDTO v in myList) {
//code above
}
答案 1 :(得分:0)
C#中的foreach
语句仅适用于实现System.Collections.IEnumerable
或System.Collections.Generic.IEnumerable<T>
的集合。您收到的错误告诉您,您拥有的集合不包含由这些接口提供的公共GetEnumerator
方法的定义。
有关详细信息,请参阅https://msdn.microsoft.com/nl-nl/library/ttw7t8t6.aspx。