Updated FindAndReturnChildrenByItems to be an extension method

This commit is contained in:
Chomp
2025-06-28 11:58:50 +01:00
parent fed9f3dd46
commit a3dbd3176e
8 changed files with 43 additions and 36 deletions
@@ -191,5 +191,37 @@ namespace SPTarkov.Server.Core.Extensions
return items;
}
/// <summary>
/// Recursive function that looks at every item from parameter and gets their children's Ids + includes parent item in results
/// </summary>
/// <param name="items">List of items (item + possible children)</param>
/// <param name="baseItemId">Parent item's id</param>
/// <returns>list of child item ids</returns>
public static List<string> FindAndReturnChildrenByItems(
this IEnumerable<Item> items,
string baseItemId
)
{
List<string> list = [];
foreach (var childItem in items)
{
if (
string.Equals(
childItem.ParentId,
baseItemId,
StringComparison.OrdinalIgnoreCase
)
)
{
list.AddRange(FindAndReturnChildrenByItems(items, childItem.Id));
}
}
list.Add(baseItemId); // Required, push original item id onto array
return list;
}
}
}