C# 用最少的代码组合两个字符串
我有两条线。我想要组合这两个字符串,只要组合字符串的字符数为20或更少。如果组合长度大于20,我想截断第一个字符串,直到组合长度为20。第二个字符串永远不会超过2个字符C# 用最少的代码组合两个字符串,c#,string,C#,String,我有两条线。我想要组合这两个字符串,只要组合字符串的字符数为20或更少。如果组合长度大于20,我想截断第一个字符串,直到组合长度为20。第二个字符串永远不会超过2个字符 这很容易做到。但是,我正在寻找简短、优雅的代码。以及一些扩展方法: string str = (str1.Length + str2.Length > 20) ? (str1.Substring(0, 20-str2.Length) + str2) : (str1 + str2) public static stri
这很容易做到。但是,我正在寻找简短、优雅的代码。以及一些扩展方法:
string str = (str1.Length + str2.Length > 20) ?
(str1.Substring(0, 20-str2.Length) + str2) :
(str1 + str2)
public static string Truncate(this string value, int len) {
if (value.Length <= len) {
return value;
}
return value.Substring(0, len);
}
public static string Combine(this string first, string second, int maxLen) {
return first.Truncate(maxLen - second.Length) + second;
}
string s3=s1.Length+s2.Length如果s1.Length<20-s2.Length,这将失败。不确定这是否通过了“短”的要求@SaeedAmiri阅读问题。Str2永远不会大于长度2。
str1.Combine("xx", 20);
string s1 = "some_string";
string s2 = "AB";
string s3 = s1.Substring(0, Math.Min(s1.Length, 20 - s2.Length)) + s2;
string s1 = "12341324";
string s2 = "jksand9n3";
string combined = s1.Length+s2.Length >20 ? s1.Substring(0, 20 - s2.Length) + s2 : s1+s2;
string s3 = s1.Length + s2.Length <= 20 ? s1 + s2 : s1.Remove(20 - s2.Length) + s2;