У меня есть класс, который содержит два набора данных.Тип Ограничения на Generics C# - Множественные ограничения
- Список значений для X.
- список значений для Y.
Теперь, X и Y может проводить либо строку/двойной/целое/DateTime в любой возможной комбинации. Единственным правилом является то, что в любой данный момент времени оба списка должны содержать равное количество значений.
Я мог решить проблему всегда иметь равные данные, предоставляя доступ только с помощью метода AddXY и метода RemoveAt (гарантируя, что в любой момент времени я могу гарантировать, что как X List, так и Y List равны по размеру).
Кроме того, я хотел бы, чтобы конечный пользователь этого класса мог получить доступ к значениям X и Y посредством индексаторов, как показано ниже.
someClassInstance.X [I] и someClassInstance.Y [I]
Поскольку нет возможности для этого в C#, я выбрал подвергая X и Y как метод IList (AsReadOnly).
Теперь я рассмотрел идею ограничения типов с помощью Generics. Но я не могу найти подходящие примеры для этого конкретного случая.
Как сказать
public class MyClass<P, Q>
where P : Double, String, Integer, DateTime
and Q : Double, String, Integer, DateTime
Должен ли я отказаться от идеи в целом и посмотреть на какой-то кортежей или какой-то такой структуры данных?
EDIT: Я также знаю, что ограничения не могут быть типами значений, так как это работает?
Проблема в том, что я не хочу создавать несколько классов для разных комбинаций. – Harsha
Почему бы не использовать struct как ваше ограничение? –
Как использовать kvp для заданного элемента, отличного от пользовательской коллекции или кортежа? –