Table of Contents

Struct Change<TObject, TKey>

Namespace
DynamicData
Assembly
DynamicData.dll

Container to describe a single change to a cache.

public readonly struct Change<TObject, TKey> : IEquatable<Change<TObject, TKey>> where TObject : notnull where TKey : notnull

Type Parameters

TObject

The type of the object.

TKey

The type of the key.

Implements
IEquatable<Change<TObject, TKey>>
Extension Methods
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)
WhenAnyMixin.WhenAny<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(TSender?, Expression<Func<TSender, T1>>, Expression<Func<TSender, T2>>, Expression<Func<TSender, T3>>, Expression<Func<TSender, T4>>, Expression<Func<TSender, T5>>, Expression<Func<TSender, T6>>, Expression<Func<TSender, T7>>, Expression<Func<TSender, T8>>, Expression<Func<TSender, T9>>, Expression<Func<TSender, T10>>, Expression<Func<TSender, T11>>, Expression<Func<TSender, T12>>, Func<IObservedChange<TSender, T1>, IObservedChange<TSender, T2>, IObservedChange<TSender, T3>, IObservedChange<TSender, T4>, IObservedChange<TSender, T5>, IObservedChange<TSender, T6>, IObservedChange<TSender, T7>, IObservedChange<TSender, T8>, IObservedChange<TSender, T9>, IObservedChange<TSender, T10>, IObservedChange<TSender, T11>, IObservedChange<TSender, T12>, TRet>)

Constructors

Change(ChangeReason, TKey, TObject, in Optional<TObject>, int, int)

Initializes a new instance of the Change<TObject, TKey> struct.

public Change(ChangeReason reason, TKey key, TObject current, in Optional<TObject> previous, int currentIndex = -1, int previousIndex = -1)

Parameters

reason ChangeReason

The reason.

key TKey

The key.

current TObject

The current.

previous Optional<TObject>

The previous.

currentIndex int

Value of the current.

previousIndex int

Value of the previous.

Exceptions

ArgumentException

For ChangeReason.Add, a previous value cannot be specified or For ChangeReason.Change, must supply previous value.

Change(ChangeReason, TKey, TObject, int)

Initializes a new instance of the Change<TObject, TKey> struct.

public Change(ChangeReason reason, TKey key, TObject current, int index = -1)

Parameters

reason ChangeReason

The reason.

key TKey

The key.

current TObject

The current.

index int

The index.

Change(TKey, TObject, int, int)

Initializes a new instance of the Change<TObject, TKey> struct. Constructor for ChangeReason.Move.

public Change(TKey key, TObject current, int currentIndex, int previousIndex)

Parameters

key TKey

The key.

current TObject

The current.

currentIndex int

The CurrentIndex.

previousIndex int

CurrentIndex of the previous.

Exceptions

ArgumentException

CurrentIndex must be greater than or equal to zero or PreviousIndex must be greater than or equal to zero.

Properties

Current

Gets the item which has changed.

public TObject Current { get; }

Property Value

TObject

CurrentIndex

Gets the current index.

public int CurrentIndex { get; }

Property Value

int

Key

Gets the unique key of the item which has changed.

public TKey Key { get; }

Property Value

TKey

Previous

Gets the previous change.

This is only when Reason==ChangeReason.Replace.

public Optional<TObject> Previous { get; }

Property Value

Optional<TObject>

PreviousIndex

Gets the previous change.

This is only when Reason==ChangeReason.Update or ChangeReason.Move.

public int PreviousIndex { get; }

Property Value

int

Reason

Gets the reason for the change.

public ChangeReason Reason { get; }

Property Value

ChangeReason

Methods

Equals(Change<TObject, TKey>)

public bool Equals(Change<TObject, TKey> other)

Parameters

other Change<TObject, TKey>

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

ToString()

public override string ToString()

Returns

string

Operators

operator ==(in Change<TObject, TKey>, in Change<TObject, TKey>)

Determines whether the specified objects are equal.

public static bool operator ==(in Change<TObject, TKey> left, in Change<TObject, TKey> right)

Parameters

left Change<TObject, TKey>

The left value to compare.

right Change<TObject, TKey>

The right value to compare.

Returns

bool

If the two values are equal to each other.

operator !=(in Change<TObject, TKey>, in Change<TObject, TKey>)

Determines whether the specified objects are equal.

public static bool operator !=(in Change<TObject, TKey> left, in Change<TObject, TKey> right)

Parameters

left Change<TObject, TKey>

The left value to compare.

right Change<TObject, TKey>

The right value to compare.

Returns

bool

If the two values are not equal to each other.