2017-04-26 6 views
-3

以下のリストのLINQを使用してクエリを実行する必要があります。C#LINQ親の性別で性別別にグループを照会

[{ 
    "name": "Bob", 
    "gender": "Male", 
    "children": [{ 
     "name": "Aron", 
     "gender": "Male" 
    }, { 
     "name": "Jaime", 
     "gender": "Female" 
    }] 
}, { 
    "name": "Jennifer", 
    "gender": "Female", 
    "children": [{ 
     "name": "Greg", 
     "gender": "Male" 
    }] 
}, { 
    "name": "Steve", 
    "gender": "Male", 
    "children": null 
}, { 
    "name": "Fred", 
    "gender": "Male", 
    "children": [{ 
     "name": "Tom", 
     "gender": "Male" 
    }, { 
     "name": "Max", 
     "gender": "Male" 
    }, { 
     "name": "Sam", 
     "gender": "Female" 
    }, { 
     "name": "Jim", 
     "gender": "Male" 
    }] 
}, { 
    "name": "Samantha", 
    "gender": "Female", 
    "children": [{ 
     "name": "Andrew", 
     "gender": "Male" 
    }] 
}, { 
    "name": "Alice", 
    "gender": "Female", 
    "children": [{ 
     "name": "John", 
     "gender": "Male" 
    }, { 
     "name": "Samantha", 
     "gender": "Female" 
    }] 
}] 

は、私はあなたが私が私が

LINQ

使用してそれを行うことができますどのように知らせてもらえ

[{  
    "gender": "Male",   
     "name": "Jaime", 
     "gender": "Female" 
    }] 
}, 
{ 
    "name": "Fred", 
    "gender": "Male", 
    "children": [{ 
     "name": "Sam", 
     "gender": "Female" 
    }] 
} , { 
    "name": "Alice", 
    "gender": "Female", 
    "children": [{ 
     "name": "Samantha", 
     "gender": "Female" 
    }] 
}] 

(以下同様)親の性別による女性の子供たちとグループを持っているのget親を必要とします編集

public class Parent 
{ 
    public int ParentID {get; set;} 
    public string Name {get; set;} 
    public string Gender {get; set;} 
    public List<Child> Children {get; set;} 
} 

public class Child 
{ 
    public int ChildID {get; set;} 
    public string Name {get; set;} 
    public string Gender {get; set;} 
    public DateTime DateOfBirth {get; set;} 
} 

そして私はリストのリストを持っていますシーン

var newlist = parents.where(p=> p.Children !=null && p.Children.Any(c=>  c.Gender=="Female")) 

編集 になります上記のJSONデータを持つ親、希望あなたは何として

[{  
    "gender": "Male", 
    "children": [{   
     "name": "Jaime"  
    }] 
}, 
{  
    "gender": "Female", 
    "children": [{ 
     "name": "Sam", 
     "name": "Samantha", 
    }] 
}] 

以下おかげ

+1

オクラホマので、その結果を持っているしたい場合あなたは立ち往生していますか? *女の子がいる親を取得する必要があります*ので、** **任意の**子が女性の場合は、親を取得するためにフィルタリングする必要があります。それからあなたは**親の性別で**グループ化します。 –

+1

コードブロックの代わりにC#コードを使用してください。私たちはあなたのコードなしでlinqすることはできませんそれは実際にそれを使用する方法と異なる場合があります – jace

+0

私たちは、コードでも、クエリであなたの試みを与える。 – ReRoute

答えて

0
var newlist = 
       Parents 
       .Where(p.Children.Any(c=> c.Gender == "Female")) 
       .Select(p => p.Parent) 
       .ToList(); 
+0

私はそれをテストしていないが、私はあなたのために動作すると思う。私はあなたがヌルをチェックする必要があるとは思わない。あなたが性別を選択すると、そこにチェックする必要がありますnull – ReRoute

関連する問題