I\'ve generally used the KeyValuePair type whenever I have data that is pair-related in the sense that one is a key to the other. If the data is
KeyValuePair is struct and Tuple is a class.
That is the main difference which influences how the objects are copied whether by reference or values.
and hence Tuple when passed around just uses "4byte" in 32bit OS, whereas KeyValuePair requires more based on "K and V"
Anyhow comparing Tuple and KeyValuePair is not a good idea(doesn't makes sense for me) since both serves different purpose.