ylbtech-LanguageSamples-CollectionClasses(集合类)
| ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-CollectionClasses(集合类) |
| 1.A,示例(Sample) 返回顶部 |
“集合类”示例
本示例演示如何实现可与 foreach 语句一起使用的集合类。有关更多信息,请参见集合类(C# 编程指南)。
| 安全说明 |
|---|
|
提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任。 |
在 Visual Studio 中生成并运行“集合类”示例
在“解决方案资源管理器”中,右击“CollectionClasses1”项目并单击“设为启动项目”。
在“调试”菜单中,单击“开始执行(不调试)”。
对于 CollectionClasses2,请重复前面的步骤。
从命令行生成并运行“集合类”示例
使用“更改目录”命令转到“CollectionClasses1”目录。
键入以下命令:
csc tokens.cs
tokens使用“更改目录”命令转到“CollectionClasses2”目录。
键入以下命令:
csc tokens2.cs
tokens2
| 1.B,示例代码(Sample Code)返回顶部 |
1.B.1, tokens.cs
// 版权所有(C) Microsoft Corporation。保留所有权利。
// 此代码的发布遵从
// Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
//
//版权所有(C) Microsoft Corporation。保留所有权利。 // tokens.cs
using System;
// 使命名空间 System.Collections 可用:
using System.Collections; // 声明 Tokens 类:
public class Tokens : IEnumerable
{
private string[] elements; Tokens(string source, char[] delimiters)
{
// 将字符串分析为标记:
elements = source.Split(delimiters);
} // IEnumerable 接口实现:
// 声明 IEnumerable 所需的
// GetEnumerator() 方法
public IEnumerator GetEnumerator()
{
return new TokenEnumerator(this);
} // 内部类实现 IEnumerator 接口:
private class TokenEnumerator : IEnumerator
{
private int position = -;
private Tokens t; public TokenEnumerator(Tokens t)
{
this.t = t;
} // 声明 IEnumerator 所需的 MoveNext 方法:
public bool MoveNext()
{
if (position < t.elements.Length - )
{
position++;
return true;
}
else
{
return false;
}
} // 声明 IEnumerator 所需的 Reset 方法:
public void Reset()
{
position = -;
} // 声明 IEnumerator 所需的 Current 属性:
public object Current
{
get
{
return t.elements[position];
}
}
} // 测试标记 TokenEnumerator static void Main()
{
// 通过将字符串分解为标记来测试标记:
Tokens f = new Tokens("This is a well-done program.",
new char[] {' ','-'});
foreach (string item in f)
{
Console.WriteLine(item);
}
}
}
1.B.2,
| 1.B,示例代码2(Sample Code)返回顶部 |
1.B.1, tokens2.cs
// 版权所有(C) Microsoft Corporation。保留所有权利。
// 此代码的发布遵从
// Microsoft 公共许可(MS-PL,http://opensource.org/licenses/ms-pl.html)的条款。
//
//版权所有(C) Microsoft Corporation。保留所有权利。 // tokens2.cs
using System;
using System.Collections; public class Tokens: IEnumerable
{
private string[] elements; Tokens(string source, char[] delimiters)
{
elements = source.Split(delimiters);
} // IEnumerable 接口实现: public TokenEnumerator GetEnumerator() // 非 IEnumerable 版本
{
return new TokenEnumerator(this);
} IEnumerator IEnumerable.GetEnumerator() // IEnumerable 版本
{
return (IEnumerator) new TokenEnumerator(this);
} // 内部类实现 IEnumerator 接口: public class TokenEnumerator: IEnumerator
{
private int position = -;
private Tokens t; public TokenEnumerator(Tokens t)
{
this.t = t;
} public bool MoveNext()
{
if (position < t.elements.Length - )
{
position++;
return true;
}
else
{
return false;
}
} public void Reset()
{
position = -;
} public string Current // 非 IEnumerator 版本: 类型安全
{
get
{
return t.elements[position];
}
} object IEnumerator.Current // IEnumerator 版本: 返回对象
{
get
{
return t.elements[position];
}
}
} // 测试标记 TokenEnumerator static void Main()
{
Tokens f = new Tokens("This is a well-done program.",
new char [] {' ','-'});
foreach (string item in f) // 要将 string 更改为 int
{
Console.WriteLine(item);
}
}
}
1.B.2,
| 1.C,下载地址(Free Download)返回顶部 |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
ylbtech-LanguageSamples-CollectionClasses(集合类)的更多相关文章
- Java集合类--温习笔记
最近面试发现自己的知识框架有好多问题.明明脑子里知道这个知识点,流程原理也都明白,可就是说不好,不知道是自己表达技能没点,还是确实是自己基础有问题.不管了,再巩固下基础知识总是没错的,反正最近空闲时间 ...
- C# - 集合类
C#的集合类命名空间介绍: // 程序集 mscorlib.dll System.dll System.Core.dll // 命名空间 using System.Collections:集合的接口和 ...
- 做JavaWeb开发不知Java集合类不如归家种地
Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
- [转]使用Enumeration和Iterator遍历集合类
原文地址:http://www.cnblogs.com/xwdreamer/archive/2012/05/30/2526268.html 前言 在数据库连接池分析的代码实例中,看到其中使用Enume ...
- java集合类深入分析之Queue篇
简介 Queue是一种很常见的数据结构类型,在java里面Queue是一个接口,它只是定义了一个基本的Queue应该有哪些功能规约.实际上有多个Queue的实现,有的是采用线性表实现,有的基于链表实现 ...
- Android开发之Java集合类性能分析
对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天Android吧(ard8. ...
- 【转载】Java集合类Array、List、Map区别和联系
Java集合类主要分为以下三类: 第一类:Array.Arrays第二类:Collection :List.Set第三类:Map :HashMap.HashTable 一.Array , Arrays ...
- Java 集合类的特性
ArrayList: 元素单个,效率高,多用于查询 Vector: 元素单个,线程安全,多用于查询 LinkedList: 元素单个,多用于插入和删除 HashMap: 元素成对,元素可为空 H ...
随机推荐
- bzoj 1876 高精
首先我们知道,对于两个数a,b,他们的gcd情况有如下形式的讨论 当a为奇数,b为偶数的时候gcd(a,b)=gcd(a div 2,b) 当b为奇数,a为偶数的时候gcd(a,b)=gcd(a,b ...
- Maven的默认中央仓库以及修改默认仓库&配置第三方jar包从私服下载
当构建一个Maven项目时,首先检查pom.xml文件以确定依赖包的下载位置,执行顺序如下: 1.从本地资源库中查找并获得依赖包,如果没有,执行第2步. 2.从Maven默认中央仓库中查找并获得依赖包 ...
- go的websocket实现
websocket分为握手和数据传输阶段,即进行了HTTP握手 + 双工的TCP连接 RFC协议文档在:http://tools.ietf.org/html/rfc6455 握手阶段 握手阶段就是普通 ...
- malloc和new的区别 end
3. c++中new的几种用法 c++中,new的用法很灵活,这里进行了简单的总结: 1. new() 分配这种类型的一个大小的内存空间,并以括号中的值来初始化这个变量; 2. new[] 分配这种类 ...
- 最新Python异步编程详解
我们都知道对于I/O相关的程序来说,异步编程可以大幅度的提高系统的吞吐量,因为在某个I/O操作的读写过程中,系统可以先去处理其它的操作(通常是其它的I/O操作),那么Python中是如何实现异步编程的 ...
- django配置使用redis
通常redis都是用来保存session.短信验证码.图片验证码等数据. 在django上使用redis,先要安装一个包: pip install django-redis==4.8.0(我用的dja ...
- HDU-3555
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- IIS7.0添加IP地址和域名限制
IIS7.0默认安装是没有“IP地址和域名限制”功能的,需要我们自己选择安装 1.windows系统的添加方式 控制面板--程序与功能--启用或关闭windows功能--internat inform ...
- Java基础:GC机制
上一节,简单的介绍了java当中的内存模型,那么经常和内存模型一起提到的JAVA垃圾回收机制当然也需要在这里一并的总结一下. 所谓是垃圾回收机制,用通俗的话来说,就是将那些没有被任何变量引用的实例对象 ...
- 如何学习web开发环境搭建和脚手架
Web前端的学习路线 第一阶段: HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础: Js基础教程.js内置对象常用方法.常见DO ...
