# Struct NpgsqlPolygon

Namespace
  NpgsqlTypes

Assembly
  Npgsql.dll

Represents a PostgreSQL Polygon type.

    public struct NpgsqlPolygon : IList<NpgsqlPoint>, ICollection<NpgsqlPoint>, IEnumerable<NpgsqlPoint>, IEnumerable, IEquatable<NpgsqlPolygon>

Implements
  IList<NpgsqlPoint>
  ICollection<NpgsqlPoint>
  IEnumerable<NpgsqlPoint>
  IEnumerable
  IEquatable<NpgsqlPolygon>

Inherited Members
  object.Equals(object, object)
  object.GetType()
  object.ReferenceEquals(object, object)

## Constructors

### NpgsqlPolygon()

    public NpgsqlPolygon()

### NpgsqlPolygon(params NpgsqlPoint[])

    public NpgsqlPolygon(params NpgsqlPoint[] points)

#### Parameters

`points` NpgsqlPoint[]

### NpgsqlPolygon(IEnumerable<NpgsqlPoint>)

    public NpgsqlPolygon(IEnumerable<NpgsqlPoint> points)

#### Parameters

`points` IEnumerable<NpgsqlPoint>

### NpgsqlPolygon(int)

    public NpgsqlPolygon(int capacity)

#### Parameters

`capacity` int

## Properties

### Capacity

    public int Capacity { get; }

#### Property Value

int

### Count

Gets the number of elements contained in the ICollection<T>.

    public int Count { get; }

#### Property Value

int

  The number of elements contained in the ICollection<T>.

### IsReadOnly

Gets a value indicating whether the ICollection<T> is read-only.

    public bool IsReadOnly { get; }

#### Property Value

bool

  true if the ICollection<T> is read-only; otherwise, false.

### this[int]

Gets or sets the element at the specified index.

    public NpgsqlPoint this[int index] { get; set; }

#### Parameters

`index` int

  The zero-based index of the element to get or set.

#### Property Value

NpgsqlPoint

  The element at the specified index.

#### Exceptions

ArgumentOutOfRangeException

  `index` is not a valid index in the IList<T>.

NotSupportedException

  The property is set and the IList<T> is read-only.

## Methods

### Add(NpgsqlPoint)

Adds an item to the ICollection<T>.

    public void Add(NpgsqlPoint item)

#### Parameters

`item` NpgsqlPoint

  The object to add to the ICollection<T>.

#### Exceptions

NotSupportedException

  The ICollection<T> is read-only.

### Clear()

Removes all items from the ICollection<T>.

    public void Clear()

#### Exceptions

NotSupportedException

  The ICollection<T> is read-only.

### Contains(NpgsqlPoint)

Determines whether the ICollection<T> contains a specific value.

    public bool Contains(NpgsqlPoint item)

#### Parameters

`item` NpgsqlPoint

  The object to locate in the ICollection<T>.

#### Returns

bool

  true if `item` is found in the ICollection<T>; otherwise, false.

### CopyTo(NpgsqlPoint[], int)

Copies the elements of the ICollection<T> to an Array, starting at a particular Array index.

    public void CopyTo(NpgsqlPoint[] array, int arrayIndex)

#### Parameters

`array` NpgsqlPoint[]

  The one-dimensional Array that is the destination of the elements copied from ICollection<T>. The Array must have zero-based indexing.

`arrayIndex` int

  The zero-based index in `array` at which copying begins.

#### Exceptions

ArgumentNullException

  `array` is null.

ArgumentOutOfRangeException

  `arrayIndex` is less than 0.

ArgumentException

  The number of elements in the source ICollection<T> is greater than the available space from `arrayIndex` to the end of the destination `array`.

### Equals(NpgsqlPolygon)

Indicates whether the current object is equal to another object of the same type.

    public bool Equals(NpgsqlPolygon other)

#### Parameters

`other` NpgsqlPolygon

  An object to compare with this object.

#### Returns

bool

  true if the current object is equal to the `other` parameter; otherwise, false.

### Equals(object?)

Indicates whether this instance and a specified object are equal.

    public override bool Equals(object? obj)

#### Parameters

`obj` object

  The object to compare with the current instance.

#### Returns

bool

  true if `obj` and this instance are the same type and represent the same value; otherwise, false.

### GetEnumerator()

Returns an enumerator that iterates through the collection.

    public IEnumerator<NpgsqlPoint> GetEnumerator()

#### Returns

IEnumerator<NpgsqlPoint>

  An enumerator that can be used to iterate through the collection.

### GetHashCode()

Returns the hash code for this instance.

    public override int GetHashCode()

#### Returns

int

  A 32-bit signed integer that is the hash code for this instance.

### IndexOf(NpgsqlPoint)

Determines the index of a specific item in the IList<T>.

    public int IndexOf(NpgsqlPoint item)

#### Parameters

`item` NpgsqlPoint

  The object to locate in the IList<T>.

#### Returns

int

  The index of `item` if found in the list; otherwise, -1.

### Insert(int, NpgsqlPoint)

Inserts an item to the IList<T> at the specified index.

    public void Insert(int index, NpgsqlPoint item)

#### Parameters

`index` int

  The zero-based index at which `item` should be inserted.

`item` NpgsqlPoint

  The object to insert into the IList<T>.

#### Exceptions

ArgumentOutOfRangeException

  `index` is not a valid index in the IList<T>.

NotSupportedException

  The IList<T> is read-only.

### Remove(NpgsqlPoint)

Removes the first occurrence of a specific object from the ICollection<T>.

    public bool Remove(NpgsqlPoint item)

#### Parameters

`item` NpgsqlPoint

  The object to remove from the ICollection<T>.

#### Returns

bool

  true if `item` was successfully removed from the ICollection<T>; otherwise, false. This method also returns false if `item` is not found in the original ICollection<T>.

#### Exceptions

NotSupportedException

  The ICollection<T> is read-only.

### RemoveAt(int)

Removes the IList<T> item at the specified index.

    public void RemoveAt(int index)

#### Parameters

`index` int

  The zero-based index of the item to remove.

#### Exceptions

ArgumentOutOfRangeException

  `index` is not a valid index in the IList<T>.

NotSupportedException

  The IList<T> is read-only.

### ToString()

Returns the fully qualified type name of this instance.

    public override string ToString()

#### Returns

string

  The fully qualified type name.

## Operators

### operator ==(NpgsqlPolygon, NpgsqlPolygon)

    public static bool operator ==(NpgsqlPolygon x, NpgsqlPolygon y)

#### Parameters

`x` NpgsqlPolygon
`y` NpgsqlPolygon

#### Returns

bool

### operator !=(NpgsqlPolygon, NpgsqlPolygon)

    public static bool operator !=(NpgsqlPolygon x, NpgsqlPolygon y)

#### Parameters

`x` NpgsqlPolygon
`y` NpgsqlPolygon

#### Returns

bool