我有一個名爲CandidateListOfMyObjects的對象MyObjects的列表和名爲InitialListOfMyObjects的另一個列表。我正在寫一個方法,用linq更新,刪除或添加MyObjects的實例到列表中?現在用linq添加/更新/刪除列表中的項目
MyObject ThisObject = new MyObject(); //MyObject has a field call ObjectID
for (int index = 0; index < ListOfMyObjects.Count; index++)
{
ThisObject = null;
ThisObject = ListOfMyObjects[index];
if (condition)
{
add ThisObject to InitialListOfMyObjects
}
if (condition)
{
replace the MyObject with ID ThisObject.ID in the InitialListOfMyObjects with ThisObject
}
if (condition)
{
delete the ThisObject with ID ThisObject.ID from the InitialListOfMyObjects
}
}
因爲,我循環通過InitialListOfMyObjects但我在看我的代碼,我在做內循環循環,所以我敢肯定這不是:
這一個工作循環內最好的方式來做到這一點。
感謝您的建議。
LINQ被設計成避免副作用(它來自函數編程)將數據添加到列表中。換句話說,它不是爲了改變原始列表而設計的。相反,它可以創建並返回一個新列表。 – TrueWill 2012-01-07 17:09:29
所以我不能用linq做到這一點?我必須讓循環內循環? – frenchie 2012-01-07 17:17:54
完全沒有。您可以使用Linq方法調用的結果來替換您的列表。 – sq33G 2012-01-07 17:41:27