c# 无法实现“System.Collections.IEnumerable.GetEnumerator()“,求解决方法,能运行成功的,谢谢了

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSy... using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Collections;//比课本多一个

namespace MainClass
{
public class IteratorTest : IEnumerable
{
public string[] e;
public IteratorTest(string source, Char[] de)
{
e = source.Split(de);
}
public TIEnumerator GetEnumerator()
{
return new TIEnumerator(this);
}

public class TIEnumerator : IEnumerator
{
private int position = -1;
private IteratorTest t;
public TIEnumerator(IteratorTest t)
{
this.t = t;
}
public bool MoveNext()
{
if (position < t.e.Length - 1)
{
position++; return true;
}
else { return false; }
}
public void Reset()
{
position = -1;
}
public object Current
{
get { return t.e; }
}
}

//class P
//{
static void Main(string[] args)
{
IteratorTest it = new IteratorTest("this a hao kk.",
new Char[] { ' ', '-' });

foreach(string str in it)
{
Console.WriteLine(str);
}

string words = "This is a list of words, with: a bit of punctuation" +
"\tand a tab character.";

string[] split = words.Split(new Char[] { ' ', ',', '.', ':', '\t' });

foreach (string s in split)
{

if (s.Trim() != "")

Console.WriteLine();//s
}
}
//}
}

}
展开
 我来答
Zn_yang
2014-04-11
知道答主
回答量:26
采纳率:0%
帮助的人:18.3万
展开全部
类IteratorTest 没有实现 接口IEnumerable 中的GetEnumerator() 方法,
而且我没有看懂你写这么复杂的意义
foreach(string str in it)
{
Console.WriteLine(str);
}
这里面的str是string[] 不是string
更多追问追答
追问
这个是书上的例子,利用IEnumerable IEnumerator和foreach实现迭代器。麻烦你帮我改改吧,谢谢你了,分数可以再加
追答
改一下IteratorTest的GetEnumerator方法, 就可以通过编译了
public class IteratorTest : IEnumerable
{
public string[] e;
public IteratorTest(string source, Char[] de)
{
e = source.Split(de);
}
public IEnumerator GetEnumerator()
{
return new TIEnumerator(this);
}
}
但是我不明白书上要的结果是什么? 是什么书?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式