public bool TryGetDependenceList(string assetId, out AssetData[] assetDataDependenceList) { List <AssetData> temp = null; AssetData assetData = null; if (assetDataMap.TryGetValue(assetId, out assetData)) { temp = new List <AssetData>(); while (assetData != null) { temp.Add(assetData); if (assetData.HasDependence()) { assetDataMap.TryGetValue(assetData.dependence, out assetData); } else { assetData = null; } } } if (temp != null) { temp.Reverse(); } assetDataDependenceList = temp == null ? null : temp.ToArray(); return(temp != null && temp.Count > 0); }