背景:インターフェイスを実装
するジェネリックTimeSeries<T>
クラスを作成しました。IEnumerable<IEnumerable<T>>
public interface ITimeSeries<T> : IEnumerable<IEnumerable<T>>
{
T[,] DataMatrix { get; }
DateTime[] DateTime { get; }
string[] Variables { get; }
}
public class TimeSeries<T> : ITimeSeries<T>
{
public IEnumerator<IEnumerable<T>> GetEnumerator()
{...}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
クラスは「TimeSeries<T>
内部的に」マトリックスデータ構造として実装され、各列は異なる変数を表し、各行は観測値を表します。DateTime[]
時間軸を表す追加の配列もあります。
TimeSeries<T>
最初に、ループを使用して変数ごとforeach
に、また特定の変数(内部ループを使用)のすべての観測を反復できるようにしたいと思いますforeach
が、IEnumerableインターフェイス実装の実際の理由は、すべての機能を取得することです。 LINQがIEnumerable
インターフェイスを介して提供します。ただし、各観測値のDateTimeの関連付けが損なわれないようにすることができます。
それで、質問のために:GetEnumerator
これを達成するため
のメソッドをどのように実装する必要がありますか?