所以,我有以下代碼:返回的IQueryable <T>從泛型方法
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方法只是包含在某些上下文中,我是doint。)
我不能爲我的生活弄清楚如何操縱事物以獲得IQueryable結果。我已經嘗試了許多東西,包括.AsQueryable()方法,鑄造各種東西等。
任何洞察我要去哪裏錯了,將不勝感激。
爲什麼你需要的IQueryable而不是IEnumerable的? –
Foole