2013-10-30 28 views
-1

什麼是更好的 - 從數組中刪除項目(IEnumerable)或創建除這些項目之外的新數組? 我想要有最快的方法。什麼是更好的 - 從數組中刪除項目或創建除這些項目之外的新陣列?

例如。

IEnumerable<User> users = GetUsers(); 
users = users.Where(u => u.OrganizationId == currentOrganizationId); 
// something else... 

return users.ToArray(); 

List<User> users = GetUsers().ToList(); 
users = users.RemoveAll(users.Where(u => u.OrganizationId != currentOrganizationId)); 
return users.ToArray(); 

什麼不同呢?

+0

更好地以什麼方式?這兩個做不同的事情。 – kviiri

+0

取決於...你想保存你的舊數組嗎? –

+0

如果不分配正確大小的新數組,不能刪除數組中的項目,所以這個問題有點奇怪...... –

回答

1

我建議直接創建新的數組(反正我不認爲的大多數工作方法的性能差異是巨大的)

(from u in users where u.OrganizationId == currentOrganizationId).ToArray(); 

這樣,你避免造成額外的步驟一個並非真正必要的清單。