1
我正嘗試使用LINQ來查詢適當的對象列表。目前我被困在一個嵌套查詢的語法,我希望你能幫助我。C#LINQ子查詢(在實體上)
類:
public class FooType
{
public int Id { get; set; }
public IList<Foo> Foos { get; set; }
}
public class Foo
{
public int FooTypeId { get; set; }
public string CorrelationId { get; set; }
}
public class Bar
{
public string FooCorrelationId { get; set; }
}
用法:
IList <FooType> fooTypes = new List <FooType>();
// ... add a lot of FooTypes, each enriched with some Foos
Bar bar = new Bar(){FooCorrelationId = "abcdef"};
Foo foo = fooTypes.Where(ft => ft.Foos.Where(f => f.CorrelationId == bar.FooCorrelationId)).First<Foo>();
因爲外WHERE-表達與一些不提供一個布爾值返回供給該失敗。正如你可能已經猜到,我打算像在LINQ如下:
foreach (FooType fooType in fooTypes)
{
Foo foo = fooType.Foos
.Where(f => f.CorrelationId == bar.FooCorrelationId)
.First();
}
你有任何想法如何獲取美孚我在尋找,一個用的correlationID「ABCDEF」?
對於基準測試者還有一個問題:表現如何? LINQ是否優化了查詢?或者,結果就像我在「類似」塊中那樣對對象進行迭代一樣?
非常感謝!
非常感謝,這正是我一直在尋找的!我將不得不稍稍暫停,以提高我的技能=) – 2010-10-04 09:04:34