private static void AddElementsToCollection <TElement>(object collection, List <TElement> elements) { switch (collection) { case ISet <TElement> set: set.UnionWith(elements); break; case List <TElement> list: list.AddRange(elements); break; case ICollection <TElement> coll: foreach (var element in elements) { coll.Add(element); } break; default: throw new NotSupportedException( InfoCarrierStrings.CannotAddElementsToCollection( typeof(TElement), collection.GetType())); } }
private static MethodInfo GetMethodInfo(Expression expressionBody) { if (expressionBody is MethodCallExpression outermostExpression) { return(outermostExpression.Method); } throw new ArgumentException(InfoCarrierStrings.InvalidMethodCallExpression(expressionBody)); }