public SwapListItem With(int? nextElementIndex = null, Delegate value = null) { return new SwapListItem(Key, value ?? Value, Creator, Id) { NextElementIndex = nextElementIndex ?? this.NextElementIndex }; }