25

わかりました、/else が機能するかどうかはわかっています。別の方法が必要でした。

私は使っている

B = String.Concat(A.Substring(0, 40));

値の最初の 40 文字をキャプチャします。

の値Aが より大きい場合40Bはキャプチャできますが、 の値Aが 未満の場合40、 でキャプチャされる値はありませんB

4

8 に答える 8

64

クイックアンドダーティ:

  A.Length > 40 ? A.Substring(0, 40) : A
于 2012-06-14T11:48:06.713 に答える
26

拡張機能を作成してみませんか... TruncateまたはLeftなどと呼んでください。

public static class MyExtensions
{
    public static string Truncate(this string s, int length)
    {
      if(s.Length > length) return s.Substring(0, length);
      return s;
    }
}

次に、次のように簡単に呼び出すことができます。

string B = A.Truncate(40);

また、拡張メソッドにする必要はありませんが、よりクリーンになります。

StringTool クラスで:

    public static string Truncate(string value, int length)
    {
      if(value.Length > length) return value.Substring(0, length);
      return value;
    }

そしてそれを呼び出すには:

string B = StringTool.Truncate(A, 40);
于 2012-06-14T12:04:27.843 に答える
20

String.Concat は、ここでは目的を果たしません。むしろ、次のことを行う必要があります。

if(A.Length > 40)
       B= A.Substring(0,40);
else
       B=A;
于 2012-06-14T12:04:41.773 に答える
19

以下のコードを使用して部分文字列を作成します

B = String.padright(40).Substring(0, 40)).Trim()
于 2013-03-12T18:34:41.977 に答える
4

からを使用できますMicrosoft.VisualBasic.Strings

B = Microsoft.VisualBasic.Strings.Left(A, 40);

とにかく、なぜあなたが使いたいのか分かりませんConcat

于 2012-06-14T11:50:25.577 に答える