2011-11-16 46 views
3

說我有以下類型的對象的結構:(我不當然,這只是一個例子)LINQ - 中的任何使用屬性從父對象()調用

public class Man 
{ 
    public Woman Wife { get; set; } 
    public List<Animal> Pets { get; set; } 
} 
public class Woman 
{ 
    public string Name { get; set; } 
} 
public class Animal 
{ 
    public string Name { get; set; } 
} 

我想寫一個Linq謂詞決定了Man是否擁有與他妻子同名的寵物。

我不能工作了如何做到這一點,因爲當我寫的x.Pets.Any(...)位,我現在Pet對象工作,我也沒有辦法引用父ManWife財產。

[編輯:上述說法不正確。這是一個錯誤的假設。]

有沒有一種方法可以構造這個謂詞來獲得我想要的邏輯?

回答

8

我想你想:

var query = men.Where(man => man.Pets.Any(pet => pet.Name == man.Wife.Name)); 
+0

出於某種原因,我完全認爲man變量會超出範圍。我的臉上有雞蛋。 – David

+0

我投了票關閉它。隨意跟隨。 – David

+1

@David爲什麼要關閉它?這是一個很好的問題,其他人可能會在稍後找到有用的。 – vcsjones

1

那麼你有一個男人與一個妻子,所以你可以這樣做:

var hasPetNamedLikeWife = MyMan.Pets.Any(x => x.Name == MyMan.Wife.Name); 

提醒你,我強烈建議不要嫁給一個叫菲的女人;-)

+0

加一個笑話。 – David

相關問題