私は2つの文字列を持っています。結合した文字列の文字数が20文字以下であれば、2つの文字列を結合したいと思います。結合された長さが20より大きい場合、結合された長さが20になるまで最初の文字列を切り捨てたいと思います。2番目の文字列は2文字を超えることはありません。
これは簡単です。しかし、私は短くてエレガントなコードを探しています。
string s1 = "some_string";
string s2 = "AB";
string s3 = s1.Substring(0, Math.Min(s1.Length, 20 - s2.Length)) + s2;
いくつかの拡張メソッドを使用します。
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;
}
その後、あなたはそれを次のように呼ぶことができます
str1.Combine("xx", 20);
string str = (str1.Length + str2.Length > 20) ?
(str1.Substring(0, 20-str2.Length) + str2) :
(str1 + str2)
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;