2009-07-21 7 views
1

を私はC#3.5で文字列配列を持っていた:どのようにインデックス文字列配列

string [] times = new[] {“08:00 am” , “10:00 am”, “120”} ; 

私は倍にインデックスを作成したいと思います:StartTimeEndTimeElapsedTime私は、コードよう:

StartTime= “09:00 am” ; 
EndTime= “11:00 am” ; 

は、その後times[0]は、など

私は3つの方法を作成することができ、“09:00 am”に設定されています:

private void StartTime(string time) 
{ times[0] = time; } 
private void EndTime(string time) 
{ times[1] = time; } 
private void ElapsedTime(string time) 
{ times[2] = time; } 

とコード

StartTime("09:00"); 

が、それを行うための簡単な方法はありますか?

+2

プライベートメンバーを持つクラス自体に本当にこれを配置する必要がある場合、なぜ配列を使用していますか? –

答えて

20

実際に行うべきことは、これを行う新しいクラスを作成することです。 2回のプロパティを作成します。

経過時間は、開始時刻と終了時刻の関数です。

class Time 
{ 
    public DateTime StartTime{ get; set; } 
    public DateTime EndTime{ get; set; } 

    public String[] ToStringArray() 
    { 
     String[] ret = new String[3]; 
     ret[0] = StartTime.ToString(); 
     ret[1] = EndTime.ToString(); 
     ret[2] = ElapsedTime().ToString(); 
     return ret; 
    } 

    public TimeSpan ElapsedTime() 
    { 
     return EndTime.subtract(StartTime); 
    } 
} 
+0

+1文字列配列の3つすべてを返すパブリックプロパティを表示すると、それは完璧な解決策になります:) –

+0

ワット、+85担当者:_that_ :) –

+0

そして私はC#をほとんど知りません。 – jjnguy

0

辞書を使用します。 hereを参照してください。

3

私はそれが単純であることを知りませんが、私はあなたのコードのうち、ハードインデックス参照を取って提案し、維持するために容易にするために、定数に置き換えるかの配列の要素の順序だろう将来の変化:あなたは指向より対象とする場合を除き、あなたがjjnguyのADVに従ってください。その場合には、

times[END_TIME] = time; 

private const int START_TIME = 0; 
private const int END_TIME = 1; 
private const int ELAPSED_TIME = 2; 

その後、あなたはまた、より読みやすいコードを取得します氷。

+0

+1すると、既存のコードをより良くすることができます。 – jjnguy

0

拡張方法はどうですか?

public static class Extensions 
{ 
    public static void StartTime(this string[] array, string value) 
    { 
     array[0] = value; 
    } 
} 
0

これは辞書を使用して行うことができます。

Dictionary<string, string> times = new Dictionary<string, string>(); 
times.Add("StartTime","09:00am"); 
times.Add("EndTime","11:00am"); 
2

jjnguyの答えに追加するには、3つのプロパティを保持するクラスを本当に持っている必要があり、そしてあなたは、配列を必要とするならば、あなただけのゲッターがあり、中に3つの異なる時間を返すパブリックプロパティを持つことができます文字列配列

+1

私の例にその機能を追加しました。 – jjnguy

関連する問題