コード例 #1
0
        public static string DotDotDot(this string value, int offset, int characterLimit, string append = "...", string prepend = "... ", StringBreakType breakType = StringBreakType.Word)
        {
            char[] seperator;

            switch (breakType)
            {
            case StringBreakType.Sentence:
                seperator = new char[] { '.' };
                break;

            case StringBreakType.Word:
            default:
                seperator = new char[] { ' ' };
                break;
            }

            int actualCharacterLimit = characterLimit - append.Length;

            if (actualCharacterLimit >= value.Length)
            {
                return(value);
            }

            if (offset < 0)
            {
                offset = 0;
            }

            string[]      sliceList = value.Split(seperator, StringSplitOptions.RemoveEmptyEntries);
            StringBuilder trimmedSentenceBuilder = new StringBuilder();

            if (offset > 0)
            {
                trimmedSentenceBuilder.Append(prepend);
            }

            if (sliceList.Any())
            {
                int i = 0;
                do
                {
                    if (offset > 0)
                    {
                        offset -= sliceList[i].Length + 1; // +1 ayraç için
                        continue;
                    }

                    trimmedSentenceBuilder.Append(sliceList[i]).Append(seperator[0]);
                } while ((++i < sliceList.Length) && (trimmedSentenceBuilder.Length + sliceList[i].Length) < actualCharacterLimit);

                trimmedSentenceBuilder.Append(append);
                return(trimmedSentenceBuilder.ToString());
            }
            else
            {
                return(value);
            }
        }
コード例 #2
0
 public static string DotDotDot(this string value, int characterLimit, string append = "...", StringBreakType breakType = StringBreakType.Word)
 {
     return(DotDotDot(value, 0, characterLimit,
                      append: append,
                      breakType: breakType));
 }