Я хочу сделать пользовательский индексатор для коллекции.Вот мои классы:
Бизнес-класс:
public class UserCollection : Collection<User>
{
public new User this[int index]
{
get
{
return this.FirstOrDefault(x => x.UserID == index);
}
}
}
BL API Метод:
public static Collection<User> GetUser()
{
return new UserCollection
{
new User {UserID = 2},
new User {UserID = 4}
};
}
Использование:
Collection<User> users = GetUser();
User user = users[2];
}
Пользовательский класс имеетнесколько столбцов, таких как UserID, UserName и т. д. Я хочу получить пользователя из коллекции через индекс, и здесь index будет идентификатором пользователя.Но приведенный выше код использования не делает этого, и он рассматривает индексатор родительского класса Collection.Я хочу, чтобы мой пользовательский индексатор вступил в игру.Я могу сделать это, выставив UserCollection в качестве возвращаемого типа метода GetUser, и тогда решение будет состоять в том, чтобы использовать код, подобный этому
UserCollection users = GetUser();
Но я думаю вернуть здесь наиболее общий тип из метода BL, которыйэто коллекция.Как я могу решить эту проблему?