一个类型要想支持foreach则必须实现IEnumerable,IEnumerator两个接口。
来源:互联网 发布:photo shop mac破解版 编辑:程序博客网 时间:2024/04/30 11:21
一个类型要想支持foreach则必须实现IEnumerable,IEnumerator两个接口。
// Namespace: System.Collections, Library: BCL
public interface IEnumerable...{
IEnumerator GetEnumerator();
}
// Namespace: System.Collections, Library: BCL
public interface IEnumerator...{
bool MoveNext();
void Reset();
object Current ...{ get; }
}
实例:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Collections;
namespace Randam
{
public class car
{
string name;
int year;
public car(string str, int num)
{
name = str;
year = num;
}
public string Name
{
get
{
return name;
}
}
}
public class cars : IEnumerator,IEnumerable
{
private car[] carlist;
int position = -1;
//Create internal array in constructor.
public cars()
{
carlist= new car[6]
{
new car("Ford",1992),
new car("Fiat",1988),
new car("Buick",1932),
new car("Ford",1932),
new car("Dodge",1999),
new car("Honda",1977)
};
}
//IEnumerator and IEnumerable require these methods.
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
//IEnumerator
public bool MoveNext()
{
position++;
return (position < carlist.Length);
}
//IEnumerable
public void Reset()
{position = 0;}
//IEnumerable
public object Current
{
get
{
try
{
return carlist[position];
}
catch (IndexOutOfRangeException)
{
throw new InvalidOperationException();
}
}
}
public static void Main()
{
cars cars = new cars();
foreach (car s in cars)
{
Console.WriteLine("car’s value: {0}", s.Name);
}
IEnumerator ienum = (IEnumerator)cars.GetEnumerator();
ienum.Reset();
Console.WriteLine("***************************");
while (ienum.MoveNext())
{
car s = (car)ienum.Current;
Console.WriteLine("car’s value: {0}", s.Name);
}
}
}
}
- 一个类型要想支持foreach则必须实现IEnumerable,IEnumerator两个接口。
- 实现IEnumerable和IEnumerator接口以支持foreach语句
- 如何自己实现IEnumerable和IEnumerator接口以支持foreach语句
- 如何自己实现IEnumerable和IEnumerator接口以支持foreach语句
- 实现IEnumerator 已支持foreach
- c#中foreach与接口IEnumerator和IEnumerable
- c#中foreach与接口IEnumerator和IEnumerable
- foreach/yield语句自定义IEnumerable和IEnumerator类型
- 迭代器.NET实现—IEnumerable和IEnumerator (foreach实现)
- IEnumerable 和 IEnumerator 接口
- IEnumerable 和 IEnumerator 接口
- IEnumerable 和 IEnumerator 接口
- IEnumerable和IEnumerator接口
- IEnumerable接口与IEnumerator
- IEnumerable 和 IEnumerator 接口
- IEnumerable及IEnumerator接口
- 如何实现IEnumerable<T>和IEnumerator接口,一个ASP.NET MVC日志模型的实现
- 构建可枚举类型(IEnumerable和IEnumerator接口)
- 激发软件创新,迈向互联计算——MeeGo* 1.0核心软件平台和上网本用户体验版正式发布
- tomcat开发servlet简单实例
- Canon SDK
- Linux下SSH2认证模式的配置和使用
- 开发共享库需要遵循的原则
- 一个类型要想支持foreach则必须实现IEnumerable,IEnumerator两个接口。
- 关于BCMenu在VC6和Vc9,VC2008一些用法差异
- Oracle 8i Restore HotBackup
- sql 优化
- PowerDesigner连接MySQL
- Visual C# http协议开发
- #pragma
- 使用ASP.NET生成Word文档并直接下载
- eclipse startup.jar, startup.jar