Your foreach loops:
foreach (LiabilityCheckpointInstance ci in value) foreach (LiabilityAssignment la in value )
It iterates over the same ( value ), but says that the elements in it are different. [1]
I would suggest from the context that the second should focus on ci.something , and not just on the value.
So you will have:
foreach (LiabilityAssignment la in ci.Something )
Of course, you will need to change Something to any of your list.
[1] It should be noted that the syntax itself is not incorrect. If the elements in the value have both types, then (for example, one is a subtype of the other), it will work fine. However, this does not seem to be true.
Chris source share