Wrap an enumerable so that clients can't get to the underlying implementation via a down-case : Enum « Data Types « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Design Patterns
8.Development Class
9.Event
10.File Stream
11.Generics
12.GUI Windows Form
13.Language Basics
14.LINQ
15.Network
16.Office
17.Reflection
18.Regular Expressions
19.Security
20.Services Event
21.Thread
22.Web Services
23.Windows
24.Windows Presentation Foundation
25.XML
26.XML LINQ
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source
C# / C Sharp » Data Types » EnumScreenshots 
Wrap an enumerable so that clients can't get to the underlying implementation via a down-case
 
        
//******************************
// Written by Peter Golde
// Copyright (c) 2004-2007, Wintellect
//
// Use and restribution of this code is subject to the license agreement 
// contained in the file "License.txt" accompanying this file.
//******************************

using System;
using System.Collections;
using System.Collections.Generic;


namespace Wintellect.PowerCollections
{
  /// <summary>
  /// A holder class for various internal utility functions that need to be shared.
  /// </summary>
    internal static class Util
    {

        /// <summary>
        /// Wrap an enumerable so that clients can't get to the underlying
        /// implementation via a down-case
        /// </summary>
        /// <param name="wrapped">Enumerable to wrap.</param>
        /// <returns>A wrapper around the enumerable.</returns>
        public static IEnumerable<T> CreateEnumerableWrapper<T>(IEnumerable<T> wrapped)
        {
            return new WrapEnumerable<T>(wrapped);
        }
        /// <summary>
        /// Wrap an enumerable so that clients can't get to the underlying 
        /// implementation via a down-cast.
        /// </summary>
        class WrapEnumerable<T> : IEnumerable<T>
        {
            IEnumerable<T> wrapped;

            /// <summary>
            /// Create the wrapper around an enumerable.
            /// </summary>
            /// <param name="wrapped">IEnumerable to wrap.</param>
            public WrapEnumerable(IEnumerable<T> wrapped)
            {
                this.wrapped = wrapped;
            }

            public IEnumerator<T> GetEnumerator()
            {
                return wrapped.GetEnumerator();
            }

            IEnumerator IEnumerable.GetEnumerator()
            {
                return ((IEnumerable)wrapped).GetEnumerator();
            }
        }
   }
}        

   
  
Related examples in the same category
1.Enumerations:Initialization
2.Enumerations Initialization 2
3.Enumeration Base Types
4.Enum declare and use itEnum declare and use it
5.Demonstrate an enumerationDemonstrate an enumeration
6.Enum by IEnumerable Enum by IEnumerable
7.Enum ValuesEnum Values
8.The use of an enumeration that defines the positions of the planets in the solar system relative to the SunThe use of an enumeration that defines the positions of the planets in the solar system relative to the Sun
9.Illustrates the use of an enumeration that defines the orbital periods of the first four planets in daysIllustrates the use of an enumeration that defines the orbital periods of the first four planets in days
10.Illustrates the use of an enumeration that defines the orbital periods of the first four planets in days, using a base type of longIllustrates the use of an enumeration that defines the orbital periods of the first four planets in days, using a base type of long
11.how a derived class may override an existing enumeration in a base classhow a derived class may override an existing enumeration in a base class
12.A public enum in one class from another classA public enum in one class from another class
13.Demonstrate an enumeratorDemonstrate an enumerator
14.Demonstrate IDictionaryEnumeratorDemonstrate IDictionaryEnumerator
15.Enumerators and ForeachEnumerators and Foreach
16.Enumerations:Bit Flag Enums 1
17.Enumerations:Bit Flag Enums 2
18.Enumerations:The System.Enum TypeEnumerations:The System.Enum Type
19.Enumerations: The System.Enum Type 2Enumerations: The System.Enum Type 2
20.Enum data type comparison
21.Enum.IsDefined()
22.Get all stats for EmpType.
23.Enum Parse
24.Get Enum's type, hex and value.
25.Enum.Format()
26.Get underlying type
27.switch statement with Enum and call its ToString function
28.Format enum value
29.Try to parse Enum
30.Enum To Array
31.Get Enum Description
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.