KeyValuePair as the name suggest is an object with 2 parts Key and Value so that we can store value in pairs
Example
FruitId FruitName
1 Mango
Now List<KeyValuePair> allows you to have a Generic List of KeyValuePairs so that you can have multiple values
FruitId FruitName
1 Mango
2 Apple