0
循環我有一個列表,它是可訪問如下:LINQ的更新列表,同時通過列表
List<PingtreeNode> _pingtree;
IEnumerable<PingtreeNode> ActiveNodes
{
get { return _pingtree.Where(x => x.Status == PingtreeNodeStatus.Ready);}
}
我也有一個方法,誰的工作是遍歷一些,其中一個RuleClass存在ActiveNodes的。對於這些節點中的每一個節點,將調用驗證方法,如果發現該節點無效,則會設置新的PingtreeNodeStatus。
void ValidateBuyerRules()
{
var nodes = ActiveNodes.Where(x => x.RuleClass.IsNotNullOrEmpty());
foreach (var n in nodes)
{
var isValid = NewRuleSet(n.RuleClass).Validate(_appForm);
if (!isValid) n.Status = PingtreeNodeStatus.FailedCritera;
}
}
PingtreeNode的其中一個屬性是'Product',並且產品可以在ActiveNodes列表中多次存在。
我想要做的是這個。如果產品的isValid爲真,則需要將包含相同產品的所有後續節點設置爲PingtreeNodeStatus.FailedCriteria。換句話說,在節點列表中進一步忽略它們,並且不對它們執行驗證。
我知道如何遍歷循環,並做到這一點,但我擔心更新列表,而已經在列表中。有沒有一種安全的方法來實現這一目標?
_「有沒有一種安全的方法來實現這個目標?」_你有例外嗎? –
我沒有得到例外,但這並不意味着我沒有考慮過由於缺乏經驗而沒有考慮到的可能性。 – dotnetnoob
如果你沒有得到例外,你的代碼是安全的,這個問題還不清楚。 –