0

私が を持っていてList<Family>、各ファミリーがを持っているとしましょうList<Child>

コード内でオブジェクトに遭遇したChild場合、子供が家族の一員であるかどうかをどのように判断できますか?

擬似コード:

If Child not in any family
    // Do something with child

アップデート:

モデル例:

class Family
{
  public List<Child> Children {get;set;}
  // Properties
}

class Child
{
  // Properties
}

ビューモデルの例:

class FamilyViewModel
{
  public List<Family> Families {get;set;}

  public bool ChildHasFamily(Child child)
  {
     // Determine if child is in any family or not
  } 
}
4

2 に答える 2

2

今、これは私にとってそれほどきれいではありません。物事を簡単にするためのプロパティがChild必要だと思います。Family私の理解が正しければ、あなたのビューモデルには家族のリストがあり、その中に子供のリストが含まれています。子供のリストを受け取ったら、それがあなたの家族の中にいるかどうかを知りたいとします:

class FamilyViewModel
{
  public List<Family> Families {get;set;}

  public void ChildHasFamily(Child child)
  {
      var hasFamily = Families.SelectMany(f => f.Children)
                              .Contains(child);
  } 
}

これにより、オブジェクト参照の比較が行われることに注意してください。Child が を実装する場合IEquatable<Child>、そのまま使用できます。そうでない場合は、次を使用できます。

class FamilyViewModel
{
  public List<Family> Families {get;set;}

  public void ChildHasFamily(Child child)
  {
      var hasFamily = Families.SelectMany(f => f.Children)
                              .Any(c => c.Name == child.Name);
  } 
}

WhereID 比較の述語を置き換えます。

于 2013-07-23T10:45:59.670 に答える