2012-03-13 16 views

答えて

17

あなたは何を試しましたか?ただ、事前に確認してください。

if(input.Length >= 20) 
{ 
    input = input.Substring(0,20); 
} 

あなたは本当には、ステートメントあなただけの、この場合にかかわらず、解決策を難読化し、パフォーマンスが低いのLINQを使用することができれば使用したくない場合は、次の

input = new string(input.Take(20).ToArray()); 

input = input.Length >= 20 ? input.Substring(0,20) : input; 
0

部分文字列の範囲が元の文字列の範囲内にあることを確認する場合は、try-catchは必要ありません。もちろん、元のものよりも長い部分文字列を取得することはできません。

3
:または は技術的これは if文のいずれかを使用していません3210
+0

もう一度質問を読むことができますか?私はifを使用せずに達成することができますか、キャッチしようと思っていますか? – user570715

10

文字列の拡張子を使用します。それでも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; 
    } 

用法:

input = input.Left(20); 
1

あなたはあなたが、それは元の文字列20戻り未満だとどうか、nullを返したいれるもの状態はありませんので、これは本当に、明確化を必要ですか?ただ心のうち

(someString.Length < 20) ? someString : someString.SubString(... 
2

...

a.SubString(Math.Min(startPos, a.Length), Math.Min(a.Length - Math.Min(startPos, a.Length), 
      requestedLen - Math.Min(startPos, a.Length); 

の神私のああ、私の脳の火傷を:あなたがもしブロックしたくない場合は

とにかく、あなたは三項演算子を使用することができます、袋を打つ時間...

関連する問題