ArcGIS Pro 2.6 API Reference Guide
CopyPointsToList Method
Example 

ArcGIS.Core.Geometry Namespace > ReadOnlyPointCollection Class : CopyPointsToList Method
The index of the first point to copy.
The number of points to copy.
The list into which the points are copied.
Copies the MapPoints in this list to the given list of MapPoints.
Syntax
public void CopyPointsToList( 
   int startIndex,
   int pointCount,
   ref ICollection<MapPoint> points
)
Public Sub CopyPointsToList( _
   ByVal startIndex As Integer, _
   ByVal pointCount As Integer, _
   ByRef points As ICollection(Of MapPoint) _
) 

Parameters

startIndex
The index of the first point to copy.
pointCount
The number of points to copy.
points
The list into which the points are copied.
Exceptions
ExceptionDescription
points is null.
pointCount is less than zero.
startIndex + pointCount is greater than the actual number of points in this list.
Remarks
Use this method to get a list of points of a geometry on which low-level calculations may be performed. Performance may be improved by reusing the same list for each geometry. For optimal performance, the points should have a capacity greater than or equal to the number of points that are to be copied. Each returned point in the list has a null spatial reference.
Example
// get the points as a readonly Collection
ReadOnlyPointCollection pts = polyline.Points;
int numPts = polyline.PointCount;

// OR   get an enumeration of the points
IEnumerator<MapPoint> enumPts = polyline.Points.GetEnumerator();

// OR   get the point coordinates as a readonly list of Coordinate2D
IReadOnlyList<Coordinate2D> coordinates = polyline.Copy2DCoordinatesToList();

// OR   get the point coordinates as a readonly list of Coordinate3D
IReadOnlyList<Coordinate3D> coordinates3D = polyline.Copy3DCoordinatesToList();

// OR   get a subset of the collection as Coordinate2D using preallocated memory

IList<Coordinate2D> coordinate2Ds = new List<Coordinate2D>(10);   // allocate some space
ICollection<Coordinate2D> subsetCoordinates2D = coordinate2Ds;    // assign
pts.Copy2DCoordinatesToList(1, 2, ref subsetCoordinates2D);       // copy 2 elements from index 1 into the allocated list
                                                                  // coordinate2Ds.Count = 2
                                                                  // do something with the coordinate2Ds

// without allocating more space, obtain a different set of coordinates
pts.Copy2DCoordinatesToList(5, 9, ref subsetCoordinates2D);       // copy 9 elements from index 5 into the allocated list
                                                                  // coordinate2Ds.Count = 9


// OR   get a subset of the collection as Coordinate3D using preallocated memory

IList<Coordinate3D> coordinate3Ds = new List<Coordinate3D>(15);   // allocate some space
ICollection<Coordinate3D> subsetCoordinates3D = coordinate3Ds;    // assign
pts.Copy3DCoordinatesToList(3, 5, ref subsetCoordinates3D);       // copy 5 elements from index 3 into the allocated list
                                                                  // coordinate3Ds.Count = 5


// OR   get a subset of the collection as MapPoint using preallocated memory

IList<MapPoint> mapPoints = new List<MapPoint>(7);   // allocate some space
ICollection<MapPoint> subsetMapPoint = mapPoints;    // assign
pts.CopyPointsToList(1, 4, ref subsetMapPoint);      // copy 4 elements from index 1 into the allocated list
                                                     // mapPoints.Count = 4
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 7

See Also

Reference

ReadOnlyPointCollection Class
ReadOnlyPointCollection Members