2011-06-27 9 views
0

私は現在構造体について学んでいるので、次の練習をしています。 年、月、日を含む日付を含む "Date"という構造体を設定します。また、名前、番号、生年月日、住所を含むPhoneというクラスを定義します。 Phone型のオブジェクトを含む配列を作成し、名前、番号、および日付で並べ替える必要があります。 よしが、これはコードです:構造体の運動に関する問題

struct Date 
{ 
    int year, month, day; 
    public Date(int year, int month, int day) 
    { 
     this.year = year; 
     this.month = month; 
     this.day = day; 
    } 
    public int Year 
    { 
     get { return year; } 
     set {year = value; } 
    } 
    public int Month 
    { 
     get { return month; } 
     set { month = value; } 
    } 
    public int Day 
    { 
     get { return day; } 
     set { day = value; } 
    } 
} 
    class Phone 
{ 
    string number; 
    string adress; 
    string name; 
    Date birthday = new Date(); 
    public Phone(string number,Date birthday, string adress, string name) 
    { 
     this.number = number; 
     this.birthday = birthday; 
     this.adress = adress; 
     this.name = name; 
    } 

} 
class Program 
{ 
    static void Main(string[] args) 
    { 
     Phone[] p = new Phone[3]; 
     p[0] = new Phone(1072548, 
    } 
} 

私はエラーのないよしかし、問題は、私は「日」の構造体からの誕生日を取得する方法がわからないということである、と私は入れて停止した理由です情報におかげさまで

+0

なぜクラスで日付を作成しますか?構造体を使用しますか? – hashi

+2

誕生日のプロパティを持つ電話機をモデル化するのはなぜですか?それは電話の誕生日ですか?奇妙なことを把握しておきたい。 – asawyer

+0

笑、私はあなたたちを理解していない、あなたは何か間違っていると言っているのですか、その質問はただばかですか? –

答えて

2
p[0] = new Phone(1072548, 
    new Date (1999, 12, 31), 
    "Central Park, NY", "Sam Party") 

たぶんあなたの日付構造体にこれを追加します。次の2件の契約が必要

array.OrderBy (p => p.BirthDate.ToDateTime()); 
+0

ありがとうございました!別のことは、バイナリ検索や..を使って配列を並べ替えるのですか? –

+0

@Rich、この質問に対する私の答えを見てください。おそらく助けになるだろうが、私が言及したウェブページで説明されている非ジェネリックオプションが必要な場合がある。 http://stackoverflow.com/questions/6488201/binary-search-a-list-of-custom-data-types-to-match-just-one-field/6488234#6488234 –

+0

私はまだそれを学んでいない、とにかくありがとう! –

0
struct Date 
{ 
    Date() 
    { 
     //code 
    } 
} 

class Phone 
{ 
    Phone(string "someParametr") 
    { 
     //code 
    } 
} 

public DateTime ToDateTime() 
{ 
    return new DateTime (Year, Month, Day); 
} 

その後、あなたはこのようなあなたの配列をソートすることができます。