ArcGIS Pro 2.8 API Reference Guide
Copy2DCoordinatesToList(Int32,Int32,ICollection<Coordinate2D>) Method
Example 

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

Parameters

startIndex
The index of the first point to copy.
pointCount
The number of points to copy.
coordinates
The list of 2D coordinates into which the points are copied.
Exceptions
ExceptionDescription
coordinates 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 lightweight structures from the 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 coordinates should have a capacity greater than or equal to the number of points that are to be copied.
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

See Also

Reference

ReadOnlyPointCollection Class
ReadOnlyPointCollection Members
Overload List