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()));
                }
            }
Esempio n. 2
0
        private static MethodInfo GetMethodInfo(Expression expressionBody)
        {
            if (expressionBody is MethodCallExpression outermostExpression)
            {
                return(outermostExpression.Method);
            }

            throw new ArgumentException(InfoCarrierStrings.InvalidMethodCallExpression(expressionBody));
        }