2
我有一個對象列表IEnumerable<Item>
,讓我們稱之爲Items。項目有一個propoerty Item.Subitems
這是一個子項目列表。清單約500個項目,每個平均10個子項目。c#對象列表過濾(linq?)
這些都是「內存」對象(在這個級別沒有數據庫查詢)。
我想有一個函數:
public static string GetSubitemValue(int id)
{
return Items.SelectMany(i => i.Subitems).FirstOrDefault(si => si.id == id).Value;
}
功能GetSubitemValue
將多次調用一個過程調用(此操作系統剃刀局部視圖渲染處理)中(讓我們假設500)。
是否有任何內置linq增強功能可支持可重複列表搜索(迭代?)。我應該關心自己做一些緩存或索引嗎?
首先,你應該問自己:它是否有任何影響,或者我是否過早優化?如果它*有影響,緩存項目一個Dictionary,HashMap或類似的東西。 –
在你的情況下,我有一些建議:使用redis緩存或memcache。 –
Thanks @Linh,但我無法在此級別擴展解決方案。我只能在視圖級別訪問模型(Razor)。項目列表是Model的一部分。 –