日期:2014-05-17  浏览次数:20932 次

为String和List<T>各写了一个拓展方法:FindIndexes,望大神们从性能上优化
其中字符串的那个怎么把T约束成String和char,不能约束?目测这两个方法就比较慢,求大神优化。
public static class ExtendHelper
    {
        /// <summary>
        /// Find some indexes of subString in a long string
        /// </summary>
        /// <param name="_input"></paramc
        /// <param name="_lookfor"></param>
        /// <param name="start"></param>
        /// <returns></returns>
        public static int[] FindIndexes(this String _input, String _lookfor, int start = 0)
        {
            List<int> result = new List<int>();
            int Start = start < 0 ? 0 : start;
            int current = _input.IndexOf(_lookfor, Start);
            while (!current.Equals(-1))
            {
                result.Add(current);
                current = _input.IndexOf(_lookfor, current + 1);
            }
            return result.ToArray();
        }

        //public static int[] FindIndexes(this String _input, char _lookfor, int start = 0)
        //{
        //    List<int> result = new List<int>();
        //    int Start = start < 0 ? 0 : start;
        //    int current = _input.IndexOf(_lookfor, Start);