2014-01-24 83 views
0

如何傳遞數組而不復制它? 我:傳遞數組而不是副本c#

​​

所以我想只選擇我的某種類型的對象,並沒有作爲一個copy.Is可以返回相同的陣列?

+2

你需要一個集合?你可以使用一個查詢而不需要持久化:'return mMapGameObjects.Where(g => g.Type == type);' –

+10

* *傳遞一個C#*數組* *時,你不創建一個副本,只是傳遞一個參考。另一方面,你的代碼與傳遞數組完全不同。請考慮並在文本中指定「it」的含義「...它的副本」。 –

+0

你是否試圖從原始數組中刪除所有不屬於給定類型的對象?你的代碼返回一個新的數組。該數組中的對象是mMapGameObjects中的對象的「原件」 - 不是副本。 –

回答

3

除非你真的需要一個數組作爲結果考慮返回IEnumerable<GameObjectTemplate>

public IEnumerable<GameObjectTemplate> GetObjects(GameObjectType type) 
{ 
    return mMapGameObjects.Where(m => m.Type == type); 
} 
+0

啊謝謝我可以使用自定義的枚舉器。我很新:D謝謝 –

相關問題