天道酬勤
--非学无以广才,非志无以成学
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 249 文章- 4 评论- 193
如何实现foreach
1:Net 1.1
using
System.Collections;
using
System;
public
class
Persons : IEnumerable
{
public
string
[] p_names;
public
Persons(
params
string
[] names)
{
p_names
=
new
string
[names.Length];
names.CopyTo(p_names,
0
);
}
public
string
this
[
int
idx]
{
get
{
return
p_names[idx]; }
set
{ p_names[idx]
=
value; }
}
public
int
Length
{
get
{
return
p_names.Length; }
}
IEnumerable 成员
#region
IEnumerable 成员
public
IEnumerator GetEnumerator()
{
return
new
PersonsIterator(
this
);
}
#endregion
}
public
class
PersonsIterator : IEnumerator
{
private
Persons _person;
private
int
idx;
public
PersonsIterator(Persons person)
{
this
._person
=
person;
this
.idx
=
-
1
;
}
IEnumerator 成员
#region
IEnumerator 成员
public
object
Current
{
get
{
return
_person[idx]; }
}
public
bool
MoveNext()
{
idx
++
;
return
idx
<
_person.Length;
}
public
void
Reset()
{
idx
=
-
1
;
}
#endregion
}
class
App
{
static
void
Main()
{
IEnumerable persons
=
new
Persons(
"
Roboht
"
,
"
xinsoft
"
,
"
Spiderman
"
);
IEnumerator iterator
=
persons.GetEnumerator();
int
i
=
0
;
while
(iterator.MoveNext())
{
Console.WriteLine(
"
persons[{0}] is {1}
"
, i, iterator.Current);
i
++
;
}
Console.Read();
}
}
2:Net2.0
public
class
Persons : IEnumerable
{
string
[] m_Names;
public
Persons(
params
string
[] Names)
{
m_Names
=
new
string
[Names.Length];
Names.CopyTo(m_Names,
0
);
}
public
IEnumerator GetEnumerator()
{
foreach
(
string
s
in
m_Names)
{
yield
return
s;
}
}
}
class
Program
{
static
void
Main(
string
[] args)
{
Persons arrPersons
=
new
Persons(
"
Michel
"
,
"
Christine
"
,
"
Mathieu
"
,
"
Julien
"
);
foreach
(
string
s
in
arrPersons)
{
Console.WriteLine(s);
}
Console.ReadLine();
}
}
posted @ 2008-05-28 10:28
Robot·H
阅读(200)
评论(0)
编辑
收藏
所属分类:
C#2.0
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索
相关文章:
什么是C#及.NET FrameWork
Asp.net(C#)实现验证码功能
C#下如何实现服务器+客户端的聊天程序
如何实现文本框焦点自动跳转及通过回车键提交表单
求 C#3.0 PPT 课件
请各有大侠介绍一款能生成C#代码的lex.
怎样用C#更改web.config中的Appsettings指定key的value值?
《C# 3.0 Unleashed》征集译者
相关链接:
所属分类的其他文章:
正则后向引用的一个例子
电子商务之佣金计算
ref out 的范例
[转]Using Pointers in C#
Asynchronous Nature of Delegates
众多数据,只选你一个
Delegates in C#
Power of yield
Working of Garbage Collector
把new、virtual、override说透收藏
最新IT新闻:
Silverlight对Flash 微软打垮Adobe
IBM扩大研究规模 在上海成立研究院
eWeek评Google八大“20%项目”
微软终于发布Silverlight 2正式版
微软首次打破先例 Windows 7不再改名
公告
我的最新闪存
Microsoft.Press.Inside.Microsoft.SQL.Server.2005.T-SQL.Programming.Jun.2006.chm 确实有点难度。
10-6 13:54
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我管理的小组
乱七八圾
我参加的小组
设计模式
ASP.NET
我参与的团队
数据库团队(0/283)
随笔分类
.NetFramework(7)
(rss)
Ajax(2)
(rss)
Ajax
(rss)
asp.Net2.0(49)
(rss)
C#2.0(44)
(rss)
CSS+Javacript(21)
(rss)
EC(6)
(rss)
English(2)
(rss)
Interview(2)
(rss)
Office Forms Server+SharePoint Server(1)
(rss)
ProgramLife(29)
(rss)
Sqlserver(28)
(rss)
TechBase(13)
(rss)
UML(3)
(rss)
XML(4)
(rss)
每日一句英语(2)
(rss)
美食天下(2)
(rss)
随笔档案
2008年10月 (7)
2008年9月 (25)
2008年8月 (33)
2008年7月 (30)
2008年6月 (26)
2008年5月 (24)
2008年4月 (11)
2008年3月 (8)
2008年1月 (2)
2007年12月 (2)
2007年11月 (5)
2007年10月 (1)
2007年9月 (26)
2007年8月 (21)
2007年7月 (13)
2007年6月 (11)
2007年5月 (3)
2007年4月 (3)
文章档案
2008年8月 (2)
2007年9月 (1)
相册
Demo
Demo
收藏夹
My Favorite(7)
(rss)
Asp.Net
.Net Ajax`
4guysfromrolla
51aspx
asp.net
C#开源
CodeProject
cristiandarie--SEO
c-sharpcorner.com
DoFactory
DoFactory之设计模式
http://dflying.cnblogs.com/
http://groups.google.com/group/hebust_tangshan
infoq
IT实验室
lyn
MS Forums
MSDN Code Gallery
SilverLight
sourceforge.net
UCenter
UML
w3schools
w3school中文
博客堂
敏捷堂
说故事、学模式
万年历
职场生涯
组件开发
Book Online
杜拉拉升职计
你在为谁工作
Company
facebook
youtube
掘客
康盛创想
DB
connectionstring
SqlServer Magazine
SqlServerCenter
邹建
EC
facebook 研究系列
open platform
艾瑞
创意纪
电子商务博客
丁学的博客
胡宝洁
开心
开心网
麦田
亚马逊
詹鹏
English
bjEnglish
China Daily
EnglishTown
i词霸
language_tools
NBC
华尔街英语
friend
5721美食
NzPerfec
JS+CSS+XML+DOM
Ajax基础教程 - 免费试读 - book.csdn.net
SAX
subModal google group
xml bbs
UML
ArgoUML
最新随笔
1. Tip/Trick: Url Rewriting with ASP.NET 【中文版】
2. Tip/Trick: Url Rewriting with ASP.NET 【英文版】
3. IIRF(Ionic's Isapi Rewrite Filt er)入门,在IIS上重写Url[转 ]
4. ISAPI Rewrite 介绍及相关应用
5. ASP.Net中自定义Http处理及应用之HttpHandler篇[转1]
6. 正则后向引用的一个例子
7. [你必须知道的.NET] 第三回:历史纠葛:特性和属性
8. dynamic sql 之sp_executesql的运用
9. dynamic sql之exec灵活运用
10. 国庆打算!
11. 你的文件过期了吗?
12. 电子商务之佣金计算
13. ref out 的范例
14. full join 的一个小应用
15. js全选
16. [转]Using Pointers in C#
17. Asynchronous Nature of Delegates
18. 只有parentid
19. 众多数据,只选你一个
20. Why and when using where keyword within a generic class context
Google搜索
积分与排名
积分 - 37763
排名 - 1156
最新评论
1. re: JavaScript replace() 方法
将一个字符串中的"|"替换成"/",str.replace(/|/g,"/") 怎么不行。QQ:394051476
(feng131719)
2. re: 动态sql
訪問以下! (QQ天堂)
3. re: 国庆打算!
@丁学
有4张银行卡,来回取,麻烦了。 (Robot·H)
4. re: 国庆打算!
哇~~~
存钱花一天的时间,看来这队排得够长 (丁学)
5. re: 电子商务之佣金计算
@Robot.H 如果这东西只为一类商品写的,那么这样做是合理的,如果作为多类商品同时存在写的,就是不合理的,如果你在程序中建立两个A类商品,又建立两个B类商品,你配置上就没法写了。 记得在伍迷的书里... (球球)
阅读排行榜
1. 电子商务之佣金计算(1793)
2. 【已经找到】准备找工作了[北京地区C#](749)
3. 完美的Div弹出窗口(624)
4. 大家讨论一下这个图如何设计程序。(561)
5. 预警度测试报告书(517)
评论排行榜
1. 大家讨论一下这个图如何设计程序。(18)
2. 面试1(11)
3. 真的很无奈(10)
4. 【已经找到】准备找工作了[北京地区C#](9)
5. 完美的Div弹出窗口(9)
60天内阅读排行
1. 电子商务之佣金计算(1793)
2. 预警度测试报告书(517)
3. json实例(241)
4. msSQL2005数据库备份 (174)
5. 毛驴进城(141)