Quindi devo progettare una classe che lavori su una collezione di oggetti accoppiati. Esiste una mappatura uno-a-uno tra gli oggetti. Mi aspetto che il cliente della classe abbia stabilito questa mappatura prima di usare la mia classe.Qual è il modo più intuitivo per chiedere oggetti a coppie?
La mia domanda è qual è il modo migliore per consentire all'utente della mia classe di fornirmi tali informazioni?
E 'per chiedere una collezione di coppie come questa?
MyClass(IEnumerable<KeyValuePair<Object, Object>> objects)
Oppure raccolte separate come questa?
MyClass(IEnumberable<Object> x, IEnumerable<Object> y)
Oppure c'è un'altra opzione?
Mi piace il primo perché la relazione è esplicita, non mi piace per il lavoro extra che mette sul client.
Mi piace il secondo perché i tipi sono più primitivi e richiedono meno lavoro, non mi piace perché la mappatura non è esplicita. Devo presumere che l'ordine sia corretto.
Opinioni per favore?
mi piace la prima per lo stesso motivo, il rapporto è esplicito. Dato che KeyValuePair è comune in tutto il Framework, non vedo alcun "lavoro extra" L'unico svantaggio che potrebbe avere è che KeyValuePair deduce che T2 è in qualche modo codificato da T1, se la relazione tra loro è più semetric, potresti arrotolare il tuo tipo (es. Pair ). –
Tergiver