【发布时间】:2013-06-22 11:02:47
【问题描述】:
好的,我有一个类如下:
public class MT101
{
// Sequence A
public string tag20 { get; set; } // 16x
public string tag21R { get; set; } // 16x
public string tag28D { get; set; } // 16x
public List<String> tag50; // Option F, G, H, C, or L
}
然后我有一个方法,它使所述类的新实例如下:
public class CheckMessage
{
private List<MT101> Message101 = new List<MT101>();
public List<MT101> CheckMt101Message(string[] messageBody)
{
MT101 buildMessage = new MT101();
.
.
. perform all the neccessary logic to add into buildMessage and then return the
. Message101 object
Message101.Add(buildMessage);
return Message101;
}
}
我这样从另一个类调用方法:
GlobalClasses.CheckMessage gm = new GlobalClasses.CheckMessage();
并像这样传递变量:
string[] _block4 = Regex.Split(trimmed, @"\r\n");
gm.CheckMt101Message(_block4);
foreach (GlobalClasses.CheckMessage item in gm)
{ }
在 Visual Studio 中,编译时出现以下错误:
错误 1 GlobalClasses.MT101.System.Collections.IEnumerable.GetEnumerator()':包含类型未实现接口 'System.Collections.IEnumerable'
错误 2 foreach 语句无法对“GlobalClasses.CheckMessage”类型的变量进行操作,因为“SASMI.GlobalClasses.CheckMessage”不包含“GetEnumerator”的公共定义
我在谷歌上搜索并找到了将 IEnumerable 设置为类的参考,所以我试过这个:
公开课 Mt101:IEnumberable
报告相同的消息。
【问题讨论】:
-
你试图迭代什么集合/列表??
-
错误的哪一部分你不明白?你的
foreach没有意义。 -
CheckMessage不是IEnumerable -
gm 是一个类而不是一个列表,我什至不知道从哪里开始你真的需要重新考虑这一点。
-
问题在这里
foreach (GlobalClasses.CheckMessage item in gm)