2
選擇多個ID的(主鍵),我有一個整數列表LINQ的從整數列表
''# VB
Dim ResultIDsas List(Of Integer) = new List(Of Integer)
// C#
List<int> ResultIDs= new List<int>();
我通過一個Lucene讀的結果循環添加到列表中。
''#VB
While (i <= (page * 10) AndAlso i < HitCollection.Length)
Dim document As Document = HitCollection.Doc(i)
Dim _event As New Domain.[Event]
ResultIDs.Add(document.[Get]("ID"))
i += 1
End While
// C#
while ((i <= (page * 10) && i < HitCollection.Length)) {
Document document = HitCollection.Doc(i);
Domain.Event _event = new Domain.Event();
ResultIDs.Add(document.Get("ID"));
i += 1;
}
現在,這裏是哪裏的問題用武之地。
說我的整數列表是[1,5,6,19,22]
會是什麼一個LINQ(拉姆達)expresion樣子,當我需要查詢我的服務?
''# VB
EventService.QueryEvents().Where(Function(e) (e.ID = 1))
// C#
EventService.QueryEvents().Where((System.Object e) => (e.ID == 1));
// Obviously these will simply grab ID of "1" which is not what we want.
真棒感謝。我嘗試了另一種方式,因爲我的大腦並不能正常工作lambda,但是`e.ID.Contains(ResultIDs)` - 這顯然不起作用。 – 2010-12-07 01:19:52
超酷。這就是Linq-to-SQL的工作方式,這是從SQL中的「Field IN(1,2,3)」轉換爲Linq中的「myList.Contains(Field)」的過渡。還有一件事--Contains()是IEnumerable()的一個擴展,所以如果這樣做不方便,我認爲你不需要依賴你的`ResultIDs`集合來成爲IList。 – mattmc3 2010-12-07 01:41:03