說列表循環的最有效的方式,我有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澤熊:答案編輯。 –