Beispiel #1
0
        /// <summary>
        /// Direct edit
        /// </summary>
        /// <typeparam name="Arg1"></typeparam>
        /// <typeparam name="Arg2"></typeparam>
        /// <param name="files_in"></param>
        /// <param name="func"></param>
        /// <param name="arg1"></param>
        /// <param name="arg2"></param>
        public static List <string> ChangeContent <Arg1, Arg2>(ChangeContentArgs a, List <string> files_in, Func <string, Arg1, Arg2, string> func, Arg1 arg1, Arg2 arg2)
        {
            for (int i = 0; i < files_in.Count; i++)
            {
                files_in[i] = func.Invoke(files_in[i], arg1, arg2);
            }

            RemoveNullOrEmpty(a, files_in);

            return(files_in);
        }
Beispiel #2
0
        /// <summary>
        /// TResult is the same type as T1 (output collection is the same generic as input)
        /// </summary>
        /// <typeparam name="T1"></typeparam>
        /// <typeparam name="T2"></typeparam>
        /// <typeparam name="TResult"></typeparam>
        /// <param name="files_in"></param>
        /// <param name="func"></param>
        private static List <TResult> ChangeContent <T1, T2, TResult>(ChangeContentArgs a, Func <T1, T2, TResult> func, List <T1> files_in, T2 t2)
        {
            List <TResult> result = new List <TResult>(files_in.Count);

            for (int i = 0; i < files_in.Count; i++)
            {
                // Fully generic - no strict string can't return the same collection
                result.Add(func.Invoke(files_in[i], t2));
            }

            CA.RemoveDefaultT <TResult>(result);
            return(result);
        }
Beispiel #3
0
        private static void RemoveNullOrEmpty(ChangeContentArgs a, List <string> files_in)
        {
            if (a != null)
            {
                if (a.removeNull)
                {
                    CA.RemoveDefaultT <string>(files_in);
                }

                if (a.removeEmpty)
                {
                    CA.RemoveStringsEmpty2(files_in);
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// Direct edit
        /// </summary>
        /// <param name="files_in"></param>
        /// <param name="func"></param>
        public static bool ChangeContent(ChangeContentArgs a, List <string> files_in, Predicate <string> predicate, Func <string, string> func)
        {
            bool changed = false;

            for (int i = 0; i < files_in.Count; i++)
            {
                if (predicate.Invoke(files_in[i]))
                {
                    files_in[i] = func.Invoke(files_in[i]);
                    changed     = true;
                }
            }

            RemoveNullOrEmpty(a, files_in);

            return(changed);
        }