Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用最少的代码组合两个字符串_C#_String - Fatal编程技术网

C# 用最少的代码组合两个字符串

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

我有两条线。我想要组合这两个字符串,只要组合字符串的字符数为20或更少。如果组合长度大于20,我想截断第一个字符串,直到组合长度为20。第二个字符串永远不会超过2个字符


这很容易做到。但是,我正在寻找简短、优雅的代码。

以及一些扩展方法:

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;