packages/System.Linq.Dynamic.Core.1.0.7.12/src/System.Linq.Dynamic.Core/DynamicEnumerableExtensions.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using System.Linq.Dynamic.Core.Validation;
using System.Reflection;

namespace System.Linq.Dynamic.Core
{
    /// <summary>
    /// Define extensions on <see cref="IEnumerable"/>.
    /// </summary>
    public static class DynamicEnumerableExtensions
    {
        private static readonly MethodInfo ToDynamicArrayGenericMethod;

        static DynamicEnumerableExtensions()
        {
            ToDynamicArrayGenericMethod = typeof(DynamicEnumerableExtensions).GetTypeInfo().GetDeclaredMethods("ToDynamicArray")
                .First(x => x.IsGenericMethod);
        }

        /// <summary>
        /// Creates an array of dynamic objects from a <see cref="IEnumerable"/>.
        /// </summary>
        /// <param name="source">A <see cref="IEnumerable"/> to create an array from.</param>
        /// <returns>An array that contains the elements from the input sequence.</returns>
#if NET35
        public static object[] ToDynamicArray([NotNull] this IEnumerable source)
        {
            Check.NotNull(source, nameof(source));
            return CastToArray<object>(source);
        }
#else
        public static dynamic[] ToDynamicArray([NotNull] this IEnumerable source)
        {
            Check.NotNull(source, nameof(source));
            return CastToArray<dynamic>(source);
        }
#endif

        /// <summary>
        /// Creates an array of dynamic objects from a <see cref="IEnumerable"/>.
        /// </summary>
        /// <typeparam name="T">The generic type.</typeparam>
        /// <param name="source">A <see cref="IEnumerable"/> to create an array from.</param>
        /// <returns>An Array{T} that contains the elements from the input sequence.</returns>
        public static T[] ToDynamicArray<T>([NotNull] this IEnumerable source)
        {
            Check.NotNull(source, nameof(source));
            return CastToArray<T>(source);
        }

        /// <summary>
        /// Creates an array of dynamic objects from a <see cref="IEnumerable"/>.
        /// </summary>
        /// <param name="source">A <see cref="IEnumerable"/> to create an array from.</param>
        /// <param name="type">A <see cref="Type"/> cast to.</param>
        /// <returns>An Array that contains the elements from the input sequence.</returns>
#if NET35
        public static object[] ToDynamicArray([NotNull] this IEnumerable source, [NotNull] Type type)
后面还有 75 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。