MonoMobile.Views.BindingExpression.CheckAndCoerceToObjectEnumerable C# (CSharp) Method

CheckAndCoerceToObjectEnumerable() private method

private CheckAndCoerceToObjectEnumerable ( object value ) : object
value object
return object
        private object CheckAndCoerceToObjectEnumerable(object value)
        {
            object result = value;
            if (result != null)
            {
                Type type = value.GetType();
                var isList = typeof(IEnumerable).IsAssignableFrom(type);

                if (type.IsGenericType && isList)
                {
                    var genericTypeDefinition = type.GetGenericTypeDefinition();
                    Type[] generic = { typeof(object) };
                    result = Activator.CreateInstance(genericTypeDefinition.MakeGenericType(generic));

                    var list = result as IList;
                    if (list != null)
                        foreach (var item in (IList)value)
                            list.Add(item);
                }
            }
            return result;
        }