use*_*715 2 .net c# linq-to-objects
只是好奇我是否只能在String.Length大于或等于20时才能使用字符串而不使用If或Try catch?
谢谢!
Bro*_*ass 17
嗯,你有什么尝试?请事先检查一下:
if(input.Length >= 20)
{
input = input.Substring(0,20);
}
Run Code Online (Sandbox Code Playgroud)
如果你真的不想使用if语句,你可以使用Linq,它只是混淆了解决方案,在这种情况下效率较低:
input = new string(input.Take(20).ToArray());
Run Code Online (Sandbox Code Playgroud)
或者从技术上讲,这不会使用if语句:
input = input.Length >= 20 ? input.Substring(0,20) : input;
Run Code Online (Sandbox Code Playgroud)
Val*_*mas 11
使用字符串扩展名.它仍然使用IF,但是,它使您的代码在使用时更干净.
public static string Left(this string input, int length)
{
string result = input;
if (input != null && input.Length > length)
{
result = input.Substring(0, length);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
用法:
input = input.Left(20);
Run Code Online (Sandbox Code Playgroud)
someString = someString.Substring(0,Math.Min(20,someString.Length));
Run Code Online (Sandbox Code Playgroud)