Así que tengo que diseñar una clase que funcione en una colección de objetos emparejados. Hay una correspondencia de uno a uno entre los objetos. Espero que el cliente de la clase haya establecido esta asignación antes de usar mi clase.¿Cuál es la forma más intuitiva de pedir objetos en pares?
Mi pregunta es ¿cuál es la mejor manera de permitir que el usuario de mi clase me dé esa información?
¿Es para pedir una colección de pares como esta?
MyClass(IEnumerable<KeyValuePair<Object, Object>> objects)
O separadas colecciones de esta manera?
MyClass(IEnumberable<Object> x, IEnumerable<Object> y)
¿O hay otra opción?
Me gusta la primera porque la relación es explícita, no me gusta por el trabajo adicional que realiza en el cliente.
Me gusta el segundo porque los tipos son más primitivos y requieren menos trabajo, no me gusta porque el mapeo no es explícito. Debo asumir que el orden es correcto.
Opiniones por favor?
me gusta la primera por la misma razón, la relación es explícito. Dado que KeyValuePair es común en todo el Framework, no veo que exista ningún "trabajo adicional" El único inconveniente que podría tener es que KeyValuePair infiere que T2 está de alguna forma codificado por T1, si la relación entre ellos es más simétrica, puede lanzar su propio tipo (es decir, el par ). –
Tergiver