C#Note | Visual Studio | MSDN | MSDN ライブラリ | VSUG |
601: 例 - select
/*教科点数クラス*/
public class Subject {
    public string 教科 { get; set; }
    public int 点数 { get; set; }
    public override int GetHashCode() {
        int _HashCode = this.教科.GetHashCode() ^
            this.点数.GetHashCode();
        return _HashCode;
    }
    public override bool Equals(object obj) {
        return this.GetHashCode().Equals(obj.GetHashCode());
    }
}
 
private void button1_Click(object sender, EventArgs e) {
    Subject[] _Subject = {
                    new Subject { 教科="国語", 点数=50},
                    new Subject { 教科="算数", 点数=91},
                    new Subject { 教科="理科", 点数=70},
                    new Subject { 教科="社会", 点数=91}
                };
    /* 単純 */
    Console.WriteLine("--- 単純 ---");
    var q1 = from x in _Subject
            select x;
    foreach (var item in q1) {
        Console.WriteLine("{0} / {1}", item.教科, item.点数);
    }
 
    /* 教科しかいらない */
    Console.WriteLine("--- 教科しかいらない ---");
    var q2 = from x in _Subject
            select x.教科;
    foreach (var item in q2) {
        Console.WriteLine("{0}", item);
    }
 
    /* 名前を変えて */
    Console.WriteLine("--- 名前を変えて ---");
    var q3 = from x in _Subject
            select new { きょうか = x.教科, てんすう = x.点数 };
    foreach (var item in q3) {
        Console.WriteLine("{0} / {1}", item.きょうか, item.てんすう);
    }
 
    /* 点数10点水増し */
    Console.WriteLine("--- 点数10点水増し ---");
    var q4 = from x in _Subject
            select new {教科 = x.教科, 点数 = x.点数 + 10};
    foreach (var item in q4) {
        Console.WriteLine("{0} / {1}", item.教科, item.点数);
    }
}

--- 単純 ---
国語 / 50
算数 / 91
理科 / 70
社会 / 91
--- 教科しかいらない ---
国語
算数
理科
社会
--- 名前を変えて ---
国語 / 50
算数 / 91
理科 / 70
社会 / 91
--- 点数10点水増し ---
国語 / 60
算数 / 101
理科 / 80
社会 / 101
602:
603:
604:
605:
606:
607:
608:
609:
610:
 
この Web サイトに関する感想などについては、takamorimail@yahoo.co.jpまで電子メールでお送りください。ただし、技術的な質問にはお答えできません。
Copyright (C) 2008 Takamori