У меня есть класс User, который имеет два атрибута: UserID
и ParentUserID
. Это подразумевает, что Пользователь имеет отношение к себе. Вот определение класса:Получить вложенных пользователей, используя рекурсию в C#
public class User
{
public User() { }
public User(string userid, string parentuserid)
{
this.UserID = userid;
this.ParentUserID = parentuserid;
}
public string UserID;
public string ParentUserID;
}
Мне нужно реализовать метод, который должен возвращать список пользователей, которые существуют в полной иерархии против UserID. Я считаю, что код будет намного проще с помощью Recursion, но я не смогу выполнить его самостоятельно.
public List<User> SubUsersHierarchy(List<User> users, string userid, int currentIndex)
{
List<User> subUsers = new List<User>();
if (currentIndex >= users.Count)
{ }
else
{
}
return users;
}
Клиент образец выглядит следующим образом:
List<User> users = new List<User>();
User user1 = new User("User2","User1");
User user2 = new User("User3", "User1");
User user3 = new User("User4", "User3");
User user4 = new User("User5", "User2");
users.Add(user1);
users.Add(user2);
users.Add(user3);
users.Add(user4);
List<User> subUsers = SubUsersHierarchy(users, "User1", 0);
Выход указанного вызова должен быть:
User2, User3, User4, User5
'' User1 "' не существует в списке пользователей. –
Извините, но StackOverflow не является службой записи кода. Голосование закрывается. –
'Список subUsers = users.FindAll (u => u.ParentUserID ==" User1 ");' –