• 技术文章 >后端开发 >C#.Net教程

    SUNWEN教程之----C#进阶(十)

    黄舟黄舟2016-12-19 10:26:53原创525
    现在我想说的是C#中的容器.这是一个非常重要的话题,因为不管你写什么样的程序,你都不能不与容器打交道.什么是容器呢(倒!).容器就是可以容纳东西的东西(再倒!),在C#和java这种面向对象的编程语言中,容器就被称为可以容纳对象的东东,不是说"一切都是对象吗?"以前,我一个搞C++的程序员朋友告诉我,JAVA中的容器太好用了,比C++好用多了.而作为JAVA的后来者的C#毫无疑问,它的容器功能肯定也是很强大的.

    foreach语句是遍历容器的元素的最简单的方法.我们可以用System.Collections.IEnumerator类和System.Collections.IEnumerable接口来使用C#中的容器,下面有一个例子,功能是字符串分割器.

    000: // CollectionClasses\tokens.cs
    001: using System;
    002: using System.Collections;
    003:
    004: public class Tokens : IEnumerable
    005: {
    006: PRivate string[] elements;
    007:
    008: Tokens(string source, char[] delimiters)
    009: {
    010: elements = source.Split(delimiters);
    011: }
    012:
    013: //引用IEnumerable接口014:
    015: public IEnumerator GetEnumerator()
    016: {
    017: return new TokenEnumerator(this);
    018: }
    019:
    020:
    021:
    022: private class TokenEnumerator : IEnumerator
    023: {
    024: private int position = -1;
    025: private Tokens t;
    026:
    027: public TokenEnumerator(Tokens t)
    028: {
    029: this.t = t;
    030: }
    031:
    032: public bool MoveNext()
    033: {
    034: if (position < t.elements.Length - 1)
    035: {
    036: position++;
    037: return true;
    038: }
    039: else
    040: {
    041: return false;
    042: }
    043: }
    044:
    045: public void Reset()
    046: {
    047: position = -1;
    048: }
    049:
    050: public object Current
    051: {
    052: get
    053: {
    054: return t.elements[position];
    055: }
    056: }
    057: }
    058:
    059: // 测试060:
    061: static void Main()
    062: {
    063: Tokens f = new Tokens("This is a well-done program.", new char[] {' ','-'});
    064: foreach (string item in f)
    065: {
    066: Console.WriteLine(item);
    067: }
    068: }
    069: }
    这个例子的输出是:
    This
    is
    a
    well
    done
    program.

    以上就是SUNWEN教程之----C#进阶(十)的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:SUNWEN,C#
    上一篇:SUNWEN教程之----C#进阶(九) 下一篇:SUNWEN教程之----C#进阶(十一)
    php培训_php实战培训【立即报名】-php中文网第20期

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• C#学习日记21----封装 与 访问修饰符• C#里partial关键字的作用(转摘) • SUNWEN教程之----C#进阶(五)• Redis教程(十五):C语言连接操作代码实例• C#基础知识整理:基础知识(11) 值类型,引用类型
    1/1

    PHP中文网