C# 字符串的前n个字符,即使它比n短?
假设我有字符串C# 字符串的前n个字符,即使它比n短?,c#,.net,substring,C#,.net,Substring,假设我有字符串s。如果s小于n个字符,我想返回s,否则返回s.Substring(0,n) 最简单的方法是什么?我知道的最快的方法是: var result = s.Length < n ? s : s.Substring(0, n); var结果=s.长度=0); Contract.sure(Contract.Result()!=null); //ReSharper禁用PossibleNullReferenceException Contract.sure(Contract.Resul
s
。如果s
小于n
个字符,我想返回s
,否则返回s.Substring(0,n)
最简单的方法是什么?我知道的最快的方法是:
var result = s.Length < n ? s : s.Substring(0, n);
var结果=s.长度
最好的方法是编写两个扩展方法
然后您可以像stringresult=sourceString.Left(10)那样使用它代码>
公共静态类StringExt
{
///
///返回字符串的第一个字符,如果是,则返回整个字符串
///长度小于个字符。
///
///字符串“”不能为空。
///要返回的字符数。
///字符串的第一个字符。
左公共静态字符串(此字符串本身,整数计数)
{
Contract.Requires(self!=null);
合同要求(计数>=0);
Contract.sure(Contract.Result()!=null);
//ReSharper禁用PossibleNullReferenceException
Contract.sure(Contract.Result().Length稍慢于:
如果字符串较短或等于所需长度,只需返回该字符串。不要调用子字符串
仅返回整个字符串
var result = s.Length <= n ? s : s.Substring(0, n);
var result=s.Length简单但效率低下:var result=newstring(s.Take(n).ToArray());
string result = s.Substring(0, Math.Min(s.Length, n));
var result = s.Length <= n ? s : s.Substring(0, n);