EnumerablePointEnumerator<T>.GetCurrent(ref Point p)
( )内Microsoft.Research.DynamicDataDisplay.DataSources
にエラーが表示されますUnable to cast object of type '<XYPairsInRange>d__8' to type 'IXYPair'.
XYPairsInRange は型ではなく、返される型 IEnumerable のクラスのメソッドです
public IEnumerable<IXYPair> XYPairsInRange(double startX, double endX)
{
foreach (IXYPair pair in this.XYPairs)
{
if (pair.X >= startX && pair.X <= endX)
{
yield return pair;
}
}
}
public IEnumerable<IXYPair> XYPairs
{
get
{
int counter = 0;
foreach (double x in XValues)
{
yield return new XYPair() { X = x, Y = YValues[counter++] };
}
}
}
IXYPair は次のように定義されます。
public interface IXYPair
{
double X { get; }
double Y { get; }
}
実行時にこのエラーが発生する原因は何ですか? yield return ステートメントを明示的にキャストし、(yield なしで) リストを返そうとしましたが、成功しませんでした
編集: XValues と YValues はどちらも List< double > です
呼び出しコード:
public IEnumerable Query()
{
yield return this.Data.XYPairsInRange(Double.NegativeInfinity, Double.PositiveInfinity);
}