NMath vector classes provide standard .NET GetEnumerator() methods for returning IEnumerator objects. For example:
FloatVector v = new FloatVector( 12, -4.3F ); IEnumerator elements = v.GetEnumerator(); float[] data = new float[ v.Length ]; int i = 0; while ( elements.MoveNext() ) { data[i++] = (float) elements.Current; }
Note that the Current property on an IEnumerator returns the current object in the collection, which must then be cast to the appropriate type. NMath also provides custom strongly-typed enumerators: IFloatEnumerator, IDoubleEnumerator, IFloatComplexEnumerator, and IDoubleComplexEnumerator. These avoid casting, and are therefore much faster. For instance:
FloatVector v = new FloatVector( 12, -4.3F ); IFloatEnumerator elements = v.GetFloatEnumerator(); float[] data = new float[ v.Length ]; int i = 0; while ( elements.MoveNext() ) { data[i++] = elements.Current; // No need to cast to float }TOC | Previous | Next | Index