예제 #1
0
        /// <summary>
        /// Filters a list of Chunks, keeping those which match the predicate
        /// </summary>
        /// <remarks>The original list is not altered</remarks>
        /// <param name="list"></param>
        /// <param name="predicateKeep"></param>
        /// <returns></returns>
        public static List <PngChunk> FilterList(List <PngChunk> list, IChunkPredicate predicateKeep)
        {
            List <PngChunk> result = new List <PngChunk>();

            foreach (PngChunk element in list)
            {
                if (predicateKeep.Matches(element))
                {
                    result.Add(element);
                }
            }
            return(result);
        }
예제 #2
0
        /// <summary>
        /// Filters a list of Chunks, removing those which match the predicate
        /// </summary>
        /// <remarks>The original list is not altered</remarks>
        /// <param name="list"></param>
        /// <param name="predicateRemove"></param>
        /// <returns></returns>
        public static int TrimList(List <PngChunk> list, IChunkPredicate predicateRemove)
        {
            int cont = 0;

            for (int i = list.Count - 1; i >= 0; i--)
            {
                if (predicateRemove.Matches(list[i]))
                {
                    list.RemoveAt(i);
                    cont++;
                }
            }
            return(cont);
        }