Q:

Merge the values of multiple dictionaries into one list

I want to merge the values of multiple dictionaries (3 to be exact) into a list. My current solution uses linq to first combine the dictionaries and then converts the values into a list.
private List<Part> AllParts()
{
    return walls.Concat(floors)
                .Concat(columns)
                .ToDictionary(kvp => kvp.Key, kvp => kvp.Value)
                .Values
                .ToList();
}

Merging the lists first seems redundant. How can I improve this?

A:

You can simplify this code by concatenating your dictionaries and selecting values without converting to a dictionary:
return walls.Concat(floors)
            .Concat(columns)
            .Select(kvp => kvp.Value)
            .ToList();

It looks like the shortest and most readable solution. You can avoid concatenating your collections by taking values only:
return walls.Values
            .Concat(floors.Values)
            .Concat(columns.Values)
            .ToList();

However, I do not see any readability, maintainability or performance improvements here.
P.S. I assumed that there are no duplicates in your dictionaries. This code will contain duplicated values while ToDictionary approach will throw exceptions on key duplication. 

