Collections/ReadOnlyArray.cs
author StephaneLenclud
Thu, 18 Apr 2013 23:25:10 +0200
branchMiniDisplay
changeset 444 9b09e2ee0968
parent 195 0ee888c485d5
permissions -rw-r--r--
Front View plug-in does not init if no sensor added.
Fixing some format to make strings shorter.
Now trying to start SoundGraphAccess.exe process from same directory.
Packed mode now can display three sensors along with the current time.
moel@165
     1
/*
moel@165
     2
 
moel@344
     3
  This Source Code Form is subject to the terms of the Mozilla Public
moel@344
     4
  License, v. 2.0. If a copy of the MPL was not distributed with this
moel@344
     5
  file, You can obtain one at http://mozilla.org/MPL/2.0/.
moel@165
     6
 
moel@344
     7
  Copyright (C) 2009-2010 Michael Möller <mmoeller@openhardwaremonitor.org>
moel@344
     8
	
moel@165
     9
*/
moel@165
    10
moel@165
    11
using System.Collections;
moel@165
    12
using System.Collections.Generic;
moel@165
    13
moel@165
    14
namespace OpenHardwareMonitor.Collections {
moel@165
    15
moel@165
    16
  public class ReadOnlyArray<T> : IReadOnlyArray<T> {
moel@165
    17
moel@195
    18
    private readonly T[] array;
moel@165
    19
moel@165
    20
    public ReadOnlyArray(T[] array) {
moel@165
    21
      this.array = array;
moel@165
    22
    }
moel@165
    23
moel@165
    24
    public T this[int index] {
moel@165
    25
      get { return array[index]; }
moel@165
    26
    }
moel@165
    27
moel@165
    28
    public int Length { get { return array.Length; } }
moel@165
    29
moel@165
    30
    public IEnumerator<T> GetEnumerator() {
moel@165
    31
      return ((IEnumerable<T>)array).GetEnumerator();
moel@165
    32
    }
moel@165
    33
moel@165
    34
    IEnumerator IEnumerable.GetEnumerator() {
moel@165
    35
      return array.GetEnumerator();
moel@165
    36
    }
moel@165
    37
moel@165
    38
    public static implicit operator ReadOnlyArray<T>(T[] array) {
moel@165
    39
      return new ReadOnlyArray<T>(array);
moel@165
    40
    }
moel@167
    41
moel@167
    42
    public T[] ToArray() {
moel@167
    43
      return (T[])array.Clone();
moel@167
    44
    }
moel@165
    45
  }
moel@165
    46
}