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);