【发布时间】:2011-07-30 00:06:14
【问题描述】:
所以,我有以下代码:
private readonly Dictionary<string, IGame> _gameLookup = new Dictionary<string, IGame>();
public T LookupGame<T>(string name) where T : IGame
{
if (name == null) throw new ArgumentNullException("name");
Type t = typeof(T);
if (_gameLookup.Any(d => d.Key == name))
{
return (T)_gameLookup[name];
}
var newInstance = (T)AppDomain.CurrentDomain.GetUnityContainer().Resolve(t, name);
if (newInstance != null)
{
_gameLookup.Add(name, newInstance);
return newInstance;
}
return default(T);
}
public IQueryable<T> ListGames<T>() where T : IGame
{
var games = _gameLookup.Where(d => d.GetType() == typeof (T));
return (IQueryable<T>) games;
}
我的问题在于 ListGames 方法。 ( LookupGame 方法只是为了某些上下文而包含在我正在做的事情中。)
我一生都无法弄清楚如何操纵事物以获得 IQueryable 结果。我尝试了很多东西,包括 .AsQueryable() 方法、转换各种东西等。
任何对我哪里出错的见解将不胜感激。
【问题讨论】:
-
为什么需要 IQueryable
而不是 IEnumerable ?
标签: c# generics iqueryable