选择我问这几个星期前,但不可能得到任何工作的参考答案,所以我将有这方面的帮助表示感谢: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