博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ylbtech-LanguageSamples-CollectionClasses(集合类)
阅读量:6906 次
发布时间:2019-06-27

本文共 3951 字,大约阅读时间需要 13 分钟。

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-CollectionClasses(集合类)

 

1.A,示例(Sample)

“集合类”示例

本示例演示如何实现可与 foreach 语句一起使用的集合类。有关更多信息,请参见集合类(C# 编程指南)。

安全说明

提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例。对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任。

在 Visual Studio 中生成并运行“集合类”示例

  1. 在“解决方案资源管理器”中,右击“CollectionClasses1”项目并单击“设为启动项目”。

  2. 在“调试”菜单中,单击“开始执行(不调试)”。

  3. 对于 CollectionClasses2,请重复前面的步骤。

从命令行生成并运行“集合类”示例

  1. 使用“更改目录”命令转到“CollectionClasses1”目录。

  2. 键入以下命令:

    csc tokens.cstokens
  3. 使用“更改目录”命令转到“CollectionClasses2”目录。

  4. 键入以下命令:

    csc tokens2.cstokens2
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.csusing 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 = -1;      private Tokens t;      public TokenEnumerator(Tokens t)      {         this.t = t;      }      // 声明 IEnumerator 所需的 MoveNext 方法:      public bool MoveNext()      {         if (position < t.elements.Length - 1)         {            position++;            return true;         }         else         {            return false;         }      }      // 声明 IEnumerator 所需的 Reset 方法:      public void Reset()      {         position = -1;      }      // 声明 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); } }}
View Code

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.csusing 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 = -1;      private Tokens t;      public TokenEnumerator(Tokens t)      {         this.t = t;      }      public bool MoveNext()      {         if (position < t.elements.Length - 1)         {            position++;            return true;         }         else         {            return false;         }      }      public void Reset()      {         position = -1;      }      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); } }}
View Code

1.B.2,

1.C,下载地址(Free Download)

 

warn 作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
你可能感兴趣的文章
Bash 测试和比较函数
查看>>
【转】(译)iOS Code Signing: 解惑详解
查看>>
HTML5开发-在你的游戏应用中加入广告(转)
查看>>
10 个很有用的高级 Git 命令(转)
查看>>
粘包的处理
查看>>
在Visual Studio中使用层关系图描述系统架构、技术栈
查看>>
LightOJ 1428 Melody Comparison(后缀数组)
查看>>
java学习笔记-5 泛型
查看>>
Csharp windowform controls clear
查看>>
如何让ASP.NET默认的资源编程“.NET研究”方式支持非.ResX资源存储
查看>>
c#修改系统时间的方法
查看>>
R安装package报ERROR: a 'NAMESPACE' file is required
查看>>
关于main()函数的小技巧
查看>>
phpnow配置
查看>>
使用mailx发送邮件
查看>>
Webbrowser中模拟连接点击(非鼠标模拟)
查看>>
HDU 1049 Climbing Worm(水题)
查看>>
类 不包含 方法的定义
查看>>
Servlet与JSP有什么区别?
查看>>
OK335xS psplash Screen 移植
查看>>