C#使用foreach语句遍历集合类型的方法

 更新时间:2015年06月28日 12:08:50   作者:pythoner  
这篇文章主要介绍了C#使用foreach语句遍历集合类型的方法,可实现通过foreach语句遍历集合类的功能,需要的朋友可以参考下

本文实例讲述了C#使用foreach语句遍历集合类型的方法。分享给大家供大家参考。具体如下:

这里演示如何实现可与 foreach 语句一起使用的集合类

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 = -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);
   }
  }
}

希望本文所述对大家的C#程序设计有所帮助。

相关文章

  • C#使用FileStream复制一个任意文件

    C#使用FileStream复制一个任意文件

    这篇文章主要为大家详细介绍了C#使用FileStream复制一个任意文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 在Winform动态启动、控制台命令行的方法

    在Winform动态启动、控制台命令行的方法

    winForm 程序输出类型为 windows 程序(不是命令行程序)在运行时想输入一些信息编译开发调试,如何实现这一功能
    2013-02-02
  • C#byte数组与Image的相互转换实例代码

    C#byte数组与Image的相互转换实例代码

    这篇文章主要介绍了C#byte数组与Image的相互转换实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • WPF运行时替换方法实现mvvm自动触发刷新

    WPF运行时替换方法实现mvvm自动触发刷新

    这篇文章主要为大家详细介绍了WPF运行时如何实现setter不需要调方法就可以自动触发界面刷新,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Unity的AssetPostprocessor之Model函数使用实战

    Unity的AssetPostprocessor之Model函数使用实战

    这篇文章主要为大家介绍了Unity的AssetPostprocessor之Model函数使用实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C#将文件复制到指定文件夹并整理

    C#将文件复制到指定文件夹并整理

    这篇文章主要介绍了C#将文件复制到指定文件夹并按照时间顺序来整理归档的方法,另外附上其他网友的2种实现方式,有需要的小伙伴可以参考下。
    2015-06-06
  • C#实现单词本功能

    C#实现单词本功能

    这篇文章主要为大家详细介绍了C#实现单词本功能,复习巩固所学单词,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • c#(Socket)同步套接字代码示例

    c#(Socket)同步套接字代码示例

    c#(Socket)同步套接字代码示例...
    2007-03-03
  • C#中的协变与逆变小结

    C#中的协变与逆变小结

    这篇文章主要介绍了C#中的协变与逆变的相关知识,在泛型或委托中,如果不使用协变或逆变,那么泛型类型是一个固定类型,而使用协变或逆变的话,则泛型类型可以实现多态化,需要的朋友可以参考下
    2021-10-10
  • C#中增加SQLite事务操作支持与使用方法

    C#中增加SQLite事务操作支持与使用方法

    这篇文章主要介绍了C#中增加SQLite事务操作支持与使用方法,结合实例形式分析了C#中针对SQLite事务操作的添加及使用技巧,需要的朋友可以参考下
    2017-07-07

最新评论