具有可变长度的子串的最佳方法

时间:2012-01-27 03:16:55

标签: c#

我想将带有前导空格的可变长度字符串子串到25个或更少字符。我得到了它的工作,但寻找其他方式?

  ...  item.LineString.Trim().Substring(0, 
item.LineString.Trim().Length > 25 ? 25 : item.LineString.Trim().Length));

3 个答案:

答案 0 :(得分:8)

我会使用Math.Min

var trimmed = item.LineString.Trim();
var substring = trimmed.Substring(0, Math.Min(25, trimmed.Length));

答案 1 :(得分:2)

您可以使用以下方式缩短它:

item.LineString.Trim().Substring(0, Math.Min(25, item.LineString.Trim().Length));

答案 2 :(得分:0)

有趣的是,LINQ的Take方法几乎完全符合您使用SubString长度逻辑所要完成的任务。虽然我确信其运行时效率不是最优的,但以下方法也可行:

string substring = new string(item.LineString.Trim().ToCharArray().Take(25).ToArray());

我只是想把它放在那里,因为问题是关于"其他方式"并不一定是"最好的方式"。