I have a dictionary data structure that must be passed around using WCF. To do that I created a member property with get and set methods. I can basicly achieve the same functionality, with this property being either a:

```
IDictionary<keyType, valueType>

```

or a

```
IList<KeyValuePair<keyType, valueType>>

```

I can see no strong reason for choosing one over the other. One mild reaons I could think of is:

IDictionary - People reading the code will think that IDictionary makes more sense, since the data structure is a dictionary, but in terms of what is passed through WCF they are all the same.

Can anyone think of a reason to choose IList? If there is none I'll just go with IDictionary.