private static Game[] getMostPlayedGamesDo(int Fetch, int CategoryID)
{
Game[] r;
using (MainContext db = new MainContext())
{
if (CategoryID == 0)
{
var q = db.tblArcadeGames.OrderByDescending(c => c.Plays).Take(Fetch);
r = new Game[q.Count()];
int i = 0;
foreach (var g in q)
{
r[i] = new Game(g);
i++;
}
}
else
{
var q = db.tblArcadeGames.Where(c=>c.CategoryID == CategoryID).OrderByDescending(c => c.Plays).Take(Fetch);
r = new Game[q.Count()];
int i = 0;
foreach (var g in q)
{
r[i] = new Game(g);
i++;
}
}
}
return r;
}
我似乎无法定义q
范围以外的if
,我不能将返回的值插入到if的范围之外的数组!不确定如何删除这个简单实例中的重复代码?如何删除此方法中的重复代码?
你不能让q为具体类型吗?在这两种情况下q是什么?必须有一个共同的基础? – JamesSugrue
@Kiwi抱歉,我不太了解它,我一直将我的LINQ定义为var类型 –
@Tom,在您的dbml中生成的tblArcadeGames类是什么?如果是tblArcadeGame,那么q的类型可以是List或IQueryable 。看看柯克斯沃尔的答案和我的。 –
dpp