﻿using System.Collections.Generic;

namespace AsmodeeDigital.Common.Plugin.Utils.Extensions
{
    /// <summary>
    /// Extensions methods for IEnumerable<>
    /// </summary>
    public static class IEnumerableExtension
    {
        /// <summary>
        /// Get the first item of an IEnumerable
        /// </summary>
        /// <typeparam name="T">Type of the IEnumerable</typeparam>
        /// <returns>First item of the IEnumerable</returns>
        public static T First<T>(this IEnumerable<T> items)
        {
            using (IEnumerator<T> iter = items.GetEnumerator())
            {
                iter.MoveNext();
                return iter.Current;
            }
        }

        /// <summary>
        /// Convert a IEnumerable to a List
        /// </summary>
        /// <typeparam name="T">Type of the IEnumerable</typeparam>
        /// <returns>List</returns>
        public static List<T> ToList<T>(this IEnumerable<T> items)
        {
            List<T> list = new List<T>(items);

            return list;
        }
    }
}
