foreach语句不能操作类型的变量,因为它不包含'GetEnumerator'的公共定义
本文关键字:包含 GetEnumerator 定义 操作 不能 语句 类型 变量 因为 foreach | 更新日期: 2023-09-27 17:50:07
我不明白为什么会出现这个错误:
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语句不能操作类型的变量,因为它不包含"GetEnumerator"的公共定义
请帮我修一下
c#中的foreach
语句只对实现System.Collections.IEnumerable
或System.Collections.Generic.IEnumerable<T>
的集合有效。您得到的错误告诉您,您拥有的集合不包含由这些接口提供的公共GetEnumerator
方法的定义。
参见https://msdn.microsoft.com/nl-nl/library/ttw7t8t6.aspx获取更多信息。
这是基于悬挂评论的猜测…StatusList
没有实现枚举数。我猜你正试图循环LoadByMasterWayBill
var myList = StatusList.LoadByMasterWayBill(abc);
foreach(V_TMSDetail_STATUSDTO v in myList) {
//code above
}