寻找一种在c#中截断字符串的简单方法

时间:2011-10-31 09:21:14

标签: c#

我使用了以下内容:

t.Description.Substring(0, 20)

但是如果字符串中的字符少于20个则存在问题。是否有一种简单的方法(单个内联函数),当字符串少于20个字符时,我可以使用它来截断到最大值而不会出错?

4 个答案:

答案 0 :(得分:5)

怎么样:

t.Description.Substring(0, Math.Min(0, t.Description.Length));

有些难看,但会奏效。或者,编写扩展方法:

public static string SafeSubstring(this string text, int maxLength)
{
    // TODO: Argument validation

    // If we're asked for more than we've got, we can just return the
    // original reference
    return text.Length > maxLength ? text.Substring(0, maxLength) : text;
}

答案 1 :(得分:2)

怎么样?
t.Description.Take(20);

修改

由于上面的代码会infacr导致char数组,正确的代码将是这样的:

string.Join( "", t.Description.Take(20));

答案 2 :(得分:0)

使用

 string myShortenedText = ((t == null || t.Description == null) ? null : (t.Description.Length > maxL ? t.Description.Substring(0, maxL) : t));

答案 3 :(得分:0)

另:

var result = new string(t.Description.Take(20).ToArray());