C#Note | Visual Studio | MSDN | MSDN ライブラリ | VSUG |
E01: 条件を満たす要素がシーケンス中に1つでもあれば true を返す - Any
次の例では、 配列内の名前(選手)中に「中」文字列が含まれる選手がいるか調べる。
/*日本チームクラス*/
public class Team {
    public string 名前 { get; set; }
    public string 所属 { 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());
    }
    public override string ToString() {
        string _return = this.名前 + " > " + this.所属;
        return _return;
    }
}
 
private void button1_Click(object sender, EventArgs e) {
    Team[] _Team = {
                            new Team {名前 = "中村 俊輔",  所属 = "セルティック"},
                            new Team {名前 = "遠藤 保仁", 所属 = "G大阪"},
                            new Team {名前 = "中沢 佑二", 所属 = "横浜"},
                            new Team {名前 = "田中 達也",  所属 = "浦和"}
                        };
    /* 配列内に特定の部分文字列があるか調べる。 */
    bool iAfterE = _Team.Any(w => w.名前.Contains("中"));
    Console.WriteLine("「中」のつく選手いる? {0}", iAfterE);
}

「中」のつく選手いる? True
E02: シーケンス中の全ての要素が条件を満たせば true を返す - All
次の例では、4教科が全て50点以上か調べる。
/*教科点数クラス*/
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[] _Subject1 = {
                    new Subject {教科 = "国語", 点数 = 76},
                    new Subject {教科 = "算数", 点数 = 50},
                    new Subject {教科 = "理科", 点数 = 70},
                    new Subject {教科 = "社会", 点数 = 90}
                };
 
    /* 4教科が全て50点以上か調査する。 */
    bool _bool = _Subject1.All(n => n.点数 >= 50);
    Console.WriteLine("全ての教科で50点以上か? {0}", _bool);
}

全ての教科で50点以上か? True
E03:
E04:
E05:
E06:
E07:
E08:
E09:
E10:
 
この Web サイトに関する感想などについては、takamorimail@yahoo.co.jpまで電子メールでお送りください。ただし、技術的な質問にはお答えできません。
Copyright (C) 2008 Takamori