2009-04-15 14 views
3

C#でStringとDateTimeユーティリティ関数の拡張メソッドのライブラリを作成しています。文字列と日付の有用な関数を提案して、あなたがそれに含めることをお勧めしますか?あなたの提案で、私はそれをより密着させ、集団にすることができます。StringとDateTimeのユーティリティ関数のライブラリの拡張メソッドを使用したライブラリ

ありがとうございます!

+0

私はこれらをほとんど見かけなかったと思います。本当にあなたのニーズに合ったものは見つけられませんか? – Rashack

+0

あなたはすでにどの機能を思いついていますか?リストを提供すると、他の人にもっと多くのアイデアを与えることができます。あるいは、あなたがすでに持っているものを列挙した回答を得続けるかもしれません。 – Cerebrus

+0

@Joel:Thanks for the Edit。 –

答えて

8
public static bool IsNullOrEmpty(this string value){ 
    return string.IsNullOrEmpty(value); 
} 
public static string Reverse(this string value) { 
    if (!string.IsNullOrEmpty(value)) { 
     char[] chars = value.ToCharArray(); 
     Array.Reverse(chars); 
     value = new string(chars); 
    } 
    return value; 
} 
public static string ToTitleCase(this string value) { 
    return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(value); 
} 
public static string ToTitleCaseInvariant(this string value) { 
    return CultureInfo.InvariantCulture.TextInfo.ToTitleCase(value); 
} 

些細な、しかしslighty立派呼び出します。

+0

2番目のオブジェクトは、IsEmpty(この文字列値){...}である必要があります。ヌルオブジェクトはインスタンスコールを持つことができませんでした。 – stevehipwell

+1

@ Stevo3000 - はいそれはできます!拡張メソッドはnullで呼び出すことができます。真剣に。それを試してみてください。 –

+0

nullに初期化された文字列を持つことができ、引き続き拡張メソッドを呼び出すことができます。 –

4

文字列の拡張

  1. MakeTitle - "フーバー" への "FooBarの" を回し、タイトル文字列、.i.eからタイトルを作成します。これは印刷に非常に便利です。Enum:fooEnum.ToString("g").MakeTitle()
  2. Collapse - 両端の空白を切り捨て、すべての内部スペースを1つのスペースに縮小します。
  3. IsNothing - IsNullOrEmptyと似ていますが、まず空白を切り詰めます。空白にしたくないTextBox入力には便利ですが、何も入力されていなければnullに設定します。

のDateTime拡張

  1. EndOfDay - 指定した日付
  2. StartOfDayに11時59分59秒PMまでの時間を設定する - 指定した上で午前12:00:00までの時間を設定します日付
+0

IsNullOrEqual - IsNullOrEmptyを意味しますか? –

+0

私はコーヒーを食べる前に応答を止めなければならない。 – tvanfosson

+0

StartOfDayは単なるDateTimeです。Date –

0

文字列拡張

static string ToCamelCase(this string s) {...} // Converts a string into Camel Notation, useful for code generation 
static string ToPascalCase(this string s) {...} // Converts a string into Pascal Notation 
static int [Soundex][1](this string s) {...}  // Gets the soundex of a string 

のDateTime拡張

static bool IsWithinRange(this DateTime d, DateTime start, DateTime end) {...} 
static string [ToRelativeTime][2](this DateTime d) {...} 
5

何特に文字列または日時ではなく、ターゲットを拡張したり、文字列を返さないメソッドについてまたはDateTime?そして、あなたにもいくつかのintTimeSpan方法を構築できるので、あなたは次のように流暢なインターフェイスを書き込むことができます。

DateTime yesterday = 1.Days().Ago(); 

public static TimeSpan Days(this int value) 
{ 
    return new TimeSpan(value, 0, 0, 0); 
} 

public static TimeSpan Hours(this int value) 
{ 
    return new TimeSpan(value, 0, 0); 
} 

public static TimeSpan Minutes(this int value) 
{ 
    return new TimeSpan(0, value, 0); 
} 

//... 

public static DateTime Ago(this TimeSpan value) 
{ 
    return DateTime.Now.Add(value.Negate()); 
} 

public static DateTime FromNow(this TimeSpan value) 
{ 
    return DateTime.Now.Add(value); 
} 
関連する問題