/// <summary> /// Returns an augmented data row with added metadata from the /// specified metadata map. /// </summary> /// <remarks> /// <para> /// The original data row is not modified! /// </para> /// </remarks> /// <param name="map">The metadata map.</param> /// <returns>The augmented data row.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="map"/> /// is null.</exception> public DataRow WithMetadata(PropertyBag map) { if (map == null) { throw new ArgumentNullException("map"); } DataRow result = this; foreach (KeyValuePair <string, string> pair in map.Pairs) { result = result.WithMetadata(pair.Key, pair.Value); } return(result); }