Anyメソッドを使用すると、指定した条件値が含まれるかどうかを調べることができます。
Anyメソッドに条件を指定すると、満たされているデータがある場合はtrueを返します。
例として、氏名、年齢、体重のデータを持つ3人分のデータを作成して、その中から体重が55kg未満、年齢が28歳以下のデータが含まれているかどうかを調べてみます。
VBの例
Public Class Person
Public Property Name As String
Public Property Age As Integer
Public Property Weight
End Class
Private Sub CheckAgeWeight()
Dim persons As Person() = {
New Person() With {.Name = "HIRO", .Age = 42, .Weight = 60},
New Person() With {.Name = "KAZU", .Age = 38, .Weight = 50},
New Person() With {.Name = "RUI", .Age = 28, .Weight = 45}}
Dim bCondition As Boolean = persons.Any(Function(p) p.Weight < 55 AndAlso p.Age <= 28)
Console.WriteLine(String.Format("体重が55kg未満で年齢が28歳以下の人が{0}", IIf(bCondition, "いる", "いない")))
End Sub
C#の例
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public int Weight { get; set; }
}
private void CheckAgeWeight
{
Person[] persons = {
new Person {Name = "HIRO", Age = 42, Weight= 60},
new Person {Name = "KAZU", Age = 38, Weight= 50},
new Person {Name = "RUI", Age = 28, Weight = 45}
};
bool bCondition =
persons.Any(p => p.Weight < 55 && p.Age <= 28);
Console.WriteLine("体重が55kg未満で年齢が28歳以下の人が{0}", bCondition ? "いる": "いない");
}
上の例ではAnyメソッドの引数に p => p.Weight < 55 && p.Age <= 28 を指定しています。
データにはWeight(体重)が55kg未満の人が2人、Age(年齢)が28歳以下の人が1人いるので、この条件値は満たされれ、bConditionにはtrueが代入されます。
結果として、「体重が55kg未満で年齢が28歳以下の人がいる」が出力されます。
Please follow and like us:

コメント