選擇我問這幾個星期前,但不可能得到任何工作的參考答案,所以我將有這方面的幫助表示感謝:C#LINQ從列表
我有事件ID列表從返回如下圖所示
public IEnumerable<EventFeed> GetEventIdsByEventDate(DateTime eventDate)
{
return (from feed in xmlDoc.Descendants("Show")
from ev in feed.Elements("Event")
where Convert.ToDateTime(ev.Attribute("Date").Value).ToShortDateString() == eventDate.ToShortDateString()
select new EventFeed()
{
EventShowCode = feed.Attribute("Code").Value
}).ToList();
}
我現在需要查詢我的數據庫,以匹配等於eventIds從上述方法返回的事件的XML文檔。所以,我有這樣的事情:
SELECT * FROM eventsdb其中EVENTID在GetEventIdsByEventDate()
我怎樣才能做到這一點使用LINQ
感謝 KB
Prutswonder嗨,香港專業教育學院創建的方法下面根據你的建議
public IEnumerable<EventFeed> foo(DateTime str)
{
var foo = from f in GetAllEventsFromDatabase().ToList()
where GetAllEventsByDate(str).Contains(f.EventShowCode)
select e;
return (IEnumerable<EventFeed>) foo;
}
但在編譯我得到以下錯誤
Error 7 The type arguments for method 'System.Linq.Enumerable.Contains<TSource>(System.Collections.Generic.IEnumerable<TSource>, TSource)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
GetAllEventsFromDatabase:
public IEnumerable<EventFeed> GetAllEventsFromDatabase()
{
var allEvents = from eventsList in GetEventsList()
select new EventFeed()
{
EventName = eventsList.Title,
EventSummary = eventsList.Introduction,
EventShowCode = eventsList.EventId,
EventImageSmall = eventsList.EventImageThumbUrl,
EventUrl = eventsList.Url,
EventSortBy = eventsList.SortOrder
};
return allEvents.OrderBy(x => x.EventSortBy);
}
Prutswonder嗨,我已經更新我的帖子迴應你的解決方案,請你可以看看這個? thansk kb – 2010-07-30 11:05:24
根據你的文章進行了更新。 ;-) – Prutswonder 2010-07-30 11:36:13