2011-07-26 12 views

答えて

24
var a = description == null 
     ? string.Empty 
     : description.Substring(0, Math.Min(150, description.Length)); 
16
var a = description.Substring(0, Math.Min(150, description.Length)); 

ちょうどどちらか150文字の部分文字列、または文字列全体をつかむ例えばある場合にエラーを与えることはありません、私は150に長さを制限することができ、別の方法がありますいずれか短い方。

10

public static string LimitTo(this string data, int length) { 
    return (data == null || data.Length < length) 
    ? data 
    : data.Substring(0, length); 
} 
1

文字列は、あなたができるだけ早くあなたが変数に別の値を割り当てると、あなたが望んでいた道を働いたのインスタンスを作成することができたとしても、それは違うだろう、不変で次の拡張方法を試してみてくださいタイプstringのインスタンスです。

最大150文字のstringプロパティを使用する場合は、設定者の値を確認し、150文字を超える場合は例外をスローするプロパティを記述します。

最大150文字のメソッドにstringパラメータを追加する場合は、メソッドの先頭に150文字以上あるかどうかを確認してください(例外の場合)。

0
var a = description.Substring(0, description.Length > 150 ? 150 : description.Length); 
2

私は実際にこれが欲しいと思います。

public static string LimitTo(this string data, int length) { 
    return (data == null || data.Length <= length) // Less than or equal to 
    ? data 
    : data.Substring(0, length); 
} 
4

文字列の長さ属性は、C#のために働く:

[StringLength(150)] 
public string MyProperty { get; set; } 
+1

私はWPFでViewModelでテストしましたが、TextBoxでは動作しません。ドキュメンテーションにはASP.NETが記述されています。たぶんそれはその種のアプリケーションでのみ使用されます。 – SuperJMN

1

ご使用の環境が法の下に使用するためにあなたをサポートしている場合それが良いだろう。 (@christian-codyとして提案しました。)あなたはそれを使用するには、以下の名前空間を含める必要が

[StringLength(150)] 
public string MyProperty { get; set; } 

using System.ComponentModel.DataAnnotations; 
関連する問題