说列表循环的最有效的方式,我有ID的列表:的LINQ to SQL:通过ID的
int[] ids = { 1, 2, 3, 4 };
我已经有一个返回各行编译LINQ声明(让我们称之为“酒吧”这里)。所以,我可能只是这样做:
var foo = new List<Bar>();
var len = ids.Length;
for (int i=0; i < len; i++)
{
foo.Add(db.GetBarByID(ids[i]));
}
我想知道是,如果有这样做的更有效的方法?有没有每行返回如此多的数据(几nvarchar
和int
列)和ID的列表中可高达50
更新:
我将阐述“GetBarByID”。这是一个简单的LINQ语句,它返回“Bar”。
class Bar
{
public int ID {get; set;}
public string Name {get;set;}
public int Age {get;set;}
public string Blah{get;set;}
}
IQueryable<Bar> GetBarByID(int ID)
{
return db.Bar
.Where(w => w.Barid == ID)
.SelectMany(b => Othertable.Where(w => w.barid == b.id),
(b, x) => new Bar { ID = s.id, Name = s.name, Age = s.age, Blah = x.blah });
}
附注:通过高效,我的意思是干净的代码和性能明智。
问题更新 – jzm
@rudeovski只是坚持在以后的SelectMany在容斯在那里回答 –
@rudeovski泽熊:答案编辑。 –