33,010
社区成员
发帖
与我相关
我的任务
分享
private static bool found = false;
private static List<DataModel> Find(string id, List<DataModel> list)
{
List<DataModel> resultList = new List<DataModel>();
Backtrack(resultList, list, id);
return resultList;
}
private static void Backtrack(List<DataModel> resultList, List<DataModel> list, string id)
{
if (list == null) return;
if (found) return;
for (int i = 0; i < list.Count; i++)
{
resultList.Add(list[i]);
Backtrack(resultList, list[i].Childs, id);
if (list[i].ID.Equals(id) || found)
{
found = true;
return;
}
resultList.Remove(resultList[resultList.Count - 1]);
}
}