38 lines
744 B
C#
38 lines
744 B
C#
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace QFSW.QC.Containers
|
|||
|
{
|
|||
|
public struct ArraySingle<T> : IReadOnlyList<T>
|
|||
|
{
|
|||
|
private readonly T _data;
|
|||
|
|
|||
|
public ArraySingle(T data)
|
|||
|
{
|
|||
|
_data = data;
|
|||
|
}
|
|||
|
|
|||
|
public T this[int index] => _data;
|
|||
|
|
|||
|
public int Count => 1;
|
|||
|
|
|||
|
public IEnumerator<T> GetEnumerator()
|
|||
|
{
|
|||
|
yield return _data;
|
|||
|
}
|
|||
|
|
|||
|
IEnumerator IEnumerable.GetEnumerator()
|
|||
|
{
|
|||
|
yield return _data;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
public static class ArraySingleExtensions
|
|||
|
{
|
|||
|
public static ArraySingle<T> AsArraySingle<T>(this T data)
|
|||
|
{
|
|||
|
return new ArraySingle<T>(data);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|