2017-04-26 12 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" 
    }] 
}] 

我需要獲取父誰的家長性別(如下圖所示)

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

有女兒童和組它能否請你讓我知道我可以使用LINQ

編輯

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;} 
} 

而且我的名單列表家長與上述JSON數據,希望讓現場

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

編輯 如果你想有結果作爲感謝

+1

好了,所以這裏如下

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

你卡住了嗎? *我需要帶有女性子女的父母,因此您需要過濾以獲取父母的** **任何**孩子都是女性。然後,你只是** **父母性別。 –

+1

你可以請用C#代碼而不是代碼塊嗎?我們無法在沒有您的代碼的情況下找到它,因爲它可能會影響您的實際使用方式 – jace

+0

我們需要代碼,甚至在查詢中給我們您的嘗試。 – ReRoute

回答

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

我沒有測試過它,但我認爲它適用於您。我不認爲你需要檢查null ..當你選擇性別時,它應該在那裏檢查 – ReRoute