I'm trying to find an elegant way of updating values in a ConcurrentDictionary. I've created a quick example of what I'm trying to achieve below:

```
ConcurrentDictionary<int, MyDataClass> dataLookup = new ConcurrentDictionary<int, MyDataClass>();

// Initialise the example dataLookup with some dummy data
new List<MyDataClass>
{
    new MyDataClass { Id = 1, ValueProperty = 0 },
    new MyDataClass { Id = 2, ValueProperty = 0 },
    new MyDataClass { Id = 3, ValueProperty = 0 },
    new MyDataClass { Id = 4, ValueProperty = 0 },
    new MyDataClass { Id = 5, ValueProperty = 0 }               
}.ForEach(myClass => dataLookup.TryAdd (myClass.Id, myClass));

// incoming results that need to be fed into the above dataLookup 
List<MyDataClass> newDataReceived = new List<MyDataClass>
{
    new MyDataClass { Id = 1, ValueProperty = 111 },
    new MyDataClass { Id = 3, ValueProperty = 222 },
    new MyDataClass { Id = 5, ValueProperty = 333 }
};

```

So in the above example I want to set the ValueProperty in the dataLookup ConcurrentDictionary with the Id of 1, 3 & 5 to 111, 222 and 333 respectively. I can change the newDataReceived object into anything I want but I'm pretty much stuck with the dataLookup as a ConcurrentDictionary.

At the moment I'm iterating through the list but I'm looking for some suggestions on using LINQ to make this task more efficient.