System.Collections.Generic.Dictionary.Remove(UriInfo)

Here are the examples of the csharp api System.Collections.Generic.Dictionary.Remove(UriInfo) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

19 Source : UnityAssetCache.cs
with zlib License
from SinoalmondUnityPackage

public bool TryGetreplacedet(UriInfo replacedetUrl, out Unityreplacedet replacedet)
        {
            // キャッシュテーブルから参照の取得ができなかった場合は
            if (!replacedetCacheTable.TryGetValue(replacedetUrl, out var weakUnityreplacedet))
            {
                // 参照を初期化して取得に失敗を返す
                replacedet = null;
                return false;
            }


            // 参照変数からキャッシュへの参照を取得を試み結果を返す(参照が途切れてレコードの削除は別関数で行う)
            if (!weakUnityreplacedet.TryGetTarget(out var replacedetTemp))
            {
                replacedet = null;
                return false;
            }

            //WeakRefが指す対象がC#的なnullではないが、Unityのアセットとして不正な場合
            //replacedetCacheから削除する
            if (replacedetTemp == null)
            {
                replacedet = null;
                replacedetCacheTable.Remove(replacedetUrl);
                eventListener.OnPurgereplacedetCache(replacedetUrl.Uri);
                return false;
            }

            replacedet = replacedetTemp;
            return true;
        }

19 Source : UnityAssetCache.cs
with zlib License
from SinoalmondUnityPackage

public void CleanupUnreferencedCache()
        {
            // 削除するべきアセットIDリストをリストアップするためにテーブル全体を舐める
            var removeTargetList = new List<UriInfo>(replacedetCacheTable.Count);
            foreach (var kvp in replacedetCacheTable)
            {
                // 参照からキャッシュの参照が取得でき無いのなら
                if (!kvp.Value.TryGetTarget(out var _))
                {
                    // 削除する対象として記録する
                    removeTargetList.Add(kvp.Key);
                }
            }


            // 削除する対象として記録されたアセットID分回る
            foreach (var replacedetId in removeTargetList)
            {
                // キャッシュテーブルから削除する
                replacedetCacheTable.Remove(replacedetId);
                eventListener.OnPurgereplacedetCache(replacedetId.Uri);
            }
        }