public Metadata Without(Metadatum metadatum) { var copy = Array.FindAll(_metadata, candidate => !candidate.Equals(metadatum)); return(new Metadata(copy)); }
public Metadata With(Metadatum metadatum) { var copy = new Metadatum[_metadata.Length + 1]; Array.Copy(_metadata, copy, _metadata.Length); copy[copy.Length - 1] = metadatum; return(new Metadata(copy)); }
public Metadata With(Metadatum[] metadata) { if (metadata == null) { throw new ArgumentNullException(nameof(metadata)); } var copy = new Metadatum[_metadata.Length + metadata.Length]; Array.Copy(_metadata, copy, _metadata.Length); Array.Copy(metadata, 0, copy, _metadata.Length, metadata.Length); return(new Metadata(copy)); }
public Metadata Add(Metadatum metadatum) { return(this.With(metadatum)); }