1
我已經嘗試了很多解決方案,但沒有任何一個dem給我一個正確的答案。在表達式中檢查循環依賴關係
我有一個變量,它依賴於其他幾個變量,它們被稱爲操作數。有一個這樣的變量列表,每個變量都包含一個操作數列表。每次我創建新變量的表達式時,我想檢查是否存在循環依賴關係,如
A(或其任何操作數) - > B(或其任何操作數) - > C(或任何其操作數) - > d(或其任何操作數) - >一個
到目前爲止,我還拿出WID這
foreach (var newVar in newlyCreatedVars)
{
newVar.Rank = 0;
List<string> tags = newVar.Operands.ToList();
List<string> temp;
while (tags.Count > 0)
{
var dependentVars= newlyCreatedVars.Where(t => tags.Contains(t.Name)).ToList();
temp = new List<string>();
tags.Clear();
temp.AddRange(dependentVars.SelectMany(t => t.Operands).ToArray());
if (temp.Count > 0)
{
newVar.Rank++;
tags = temp;
}
var dep = newlyCreatedVars.Where(t=> newVar .Operands.Contains(t.Name)).ToList();
if(dep.Exists(t=> t.Rank > newVar .Rank))
return false;
}
}
請幫助。
謝謝:)