函数
我有以下类定义:
[Serializable]
[DataContract]
public class Models
{
[DataMember]
public Dictionary<string, string> models { get; set; }
public Models()
{
models = new Dictionary<string, string>();
}
}
然后我有一个方法,让字典写入ini文件。
public bool write_all_model_names(Models models)
{
bool write_status = false;
try
{
foreach (KeyValuePair<string, string> model in models)
{
Write(model.Key, model.Value);
}
write_status = true;
}
catch
{
}
return write_status;
}
当我试图编译时,我得到了以下错误。
**Error** CS1579 foreach statement cannot operate on variables of type 'Models' because 'Models' does not contain a public instance or extension definition for 'GetEnumerator' CPTD_SJQ_UI
"models"是一个字典列表,为什么不循环使用呢?
您的问题是您使用的糟糕命名方案的直接后果:在foreach
行中,您用models
名称引用Models
类,而您想要迭代的是Models
类中的models
属性。
简而言之:
foreach (KeyValuePair<string, string> model in models.models)
再次,注意你的命名有多糟糕。
models
中的是Models
类型的对象。所以你必须使用
foreach (KeyValuePair<string, string> model in models.models)