我使用了以下内容:
t.Description.Substring(0, 20)
但是如果字符串中的字符少于20个则存在问题。是否有一种简单的方法(单个内联函数),当字符串少于20个字符时,我可以使用它来截断到最大值而不会出错?
答案 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());