# Struct LTree

Namespace
  Microsoft.EntityFrameworkCore

Assembly
  Npgsql.EntityFrameworkCore.PostgreSQL.dll

Represents a PostgreSQL ltree type. This type is implicitly convertible to a .NET string.

    public readonly struct LTree : IEquatable<LTree>

Implements
  IEquatable<LTree>

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

## Remarks

See https://www.postgresql.org/docs/current/ltree.html

## Constructors

### LTree(string)

Constructs a new instance of LTree.

    public LTree(string value)

#### Parameters

`value` string

  The string value for the ltree.

## Properties

### NLevel

Returns number of labels in path.

    public int NLevel { get; }

#### Property Value

int

#### Remarks

The property is translated to `nlevel(ltree)`.

See https://www.postgresql.org/docs/current/ltree.html

## Methods

### Equals(LTree)

    public bool Equals(LTree other)

#### Parameters

`other` LTree

#### Returns

bool

### Equals(object?)

    public override bool Equals(object? obj)

#### Parameters

`obj` object

#### Returns

bool

### GetHashCode()

    public override int GetHashCode()

#### Returns

int

### Index(LTree)

Returns position of first occurrence of `other` in this ltree, or -1 if not found.

    public int Index(LTree other)

#### Parameters

`other` LTree

#### Returns

int

#### Remarks

The method call is translated to `index(ltree1, ltree2)`.

See https://www.postgresql.org/docs/current/ltree.html

### Index(LTree, int)

Returns position of first occurrence of `other` in this ltree, or -1 if not found. The search starts at position `offset`; negative offset means start -offset labels from the end of the path.

    public int Index(LTree other, int offset)

#### Parameters

`other` LTree
`offset` int

#### Returns

int

#### Remarks

The method call is translated to `index(ltree1, ltree2, offset)`.

See https://www.postgresql.org/docs/current/ltree.html

### IsAncestorOf(LTree)

Returns whether this ltree is an ancestor of `other` (or equal).

    public bool IsAncestorOf(LTree other)

#### Parameters

`other` LTree

#### Returns

bool

#### Remarks

The method call is translated to `left @> right`.

See https://www.postgresql.org/docs/current/ltree.html

### IsDescendantOf(LTree)

Returns whether this ltree is a descendant of `other` (or equal).

    public bool IsDescendantOf(LTree other)

#### Parameters

`other` LTree

#### Returns

bool

#### Remarks

The method call is translated to `left <@ right`.

See https://www.postgresql.org/docs/current/ltree.html

### LongestCommonAncestor(params LTree[])

Computes longest common ancestor of paths.

    public static LTree LongestCommonAncestor(params LTree[] others)

#### Parameters

`others` LTree[]

#### Returns

LTree

#### Remarks

The method call is translated to `lca(others)`.

See https://www.postgresql.org/docs/current/ltree.html

### MatchesLQuery(string)

Returns whether this ltree matches `lquery`.

    public bool MatchesLQuery(string lquery)

#### Parameters

`lquery` string

#### Returns

bool

#### Remarks

The method call is translated to `left ~ right`.

See https://www.postgresql.org/docs/current/ltree.html

### MatchesLTxtQuery(string)

Returns whether this ltree matches `ltxtquery`.

    public bool MatchesLTxtQuery(string ltxtquery)

#### Parameters

`ltxtquery` string

#### Returns

bool

#### Remarks

The method call is translated to `left @ right`.

See https://www.postgresql.org/docs/current/ltree.html

### Subpath(int)

Returns subpath of ltree starting at position `offset`, extending to end of path. If `offset` is negative, subpath starts that far from the end of the path.

    public LTree Subpath(int offset)

#### Parameters

`offset` int

#### Returns

LTree

#### Remarks

The method call is translated to `subpath(ltree, offset)`.

See https://www.postgresql.org/docs/current/ltree.html

### Subpath(int, int)

Returns subpath of this ltree starting at position `offset`, with length `len`. If `offset` is negative, subpath starts that far from the end of the path. If `len` is negative, leaves that many labels off the end of the path.

    public LTree Subpath(int offset, int len)

#### Parameters

`offset` int
`len` int

#### Returns

LTree

#### Remarks

The method call is translated to `subpath(ltree, offset, len)`.

See https://www.postgresql.org/docs/current/ltree.html

### Subtree(int, int)

Returns subpath of this ltree from position `start` to position `end`-1 (counting from 0).

    public LTree Subtree(int start, int end)

#### Parameters

`start` int
`end` int

#### Returns

LTree

#### Remarks

The method call is translated to `subltree(ltree, start, end)`.

See https://www.postgresql.org/docs/current/ltree.html

### ToString()

    public override string ToString()

#### Returns

string

## Operators

### operator ==(LTree, LTree)

Compares two LTree instances for equality.

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

#### Parameters

`x` LTree
`y` LTree

#### Returns

bool

### implicit operator string(LTree)

Converts a string to an LTree type.

    public static implicit operator string(LTree ltree)

#### Parameters

`ltree` LTree

#### Returns

string

### implicit operator LTree(string)

Converts an LTree type to a string.

    public static implicit operator LTree(string value)

#### Parameters

`value` string

#### Returns

LTree

### operator !=(LTree, LTree)

Compares two LTree instances for inequality.

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

#### Parameters

`x` LTree
`y` LTree

#### Returns

bool