I have two list list_1 and list_2 mentioned below respectively.
List 1:
[
{
"Id": "O1",
"VId": "V2"
},
{
"Id": "O2",
"VId": "V2"
},
{
"Id": "O3",
"VId": "V2"
}
]
List 2:
[
{
"Id": "O1",
"VId": "V1"
},
{
"Id": "O3",
"VId": "V1"
}
]
I am joining these two list using the query below.
var query = from obj_1 in list_1
join obj_2 in list_2
on obj_1.Id equals obj_2.Id into objCombined
from combinedObj in objCombined.DefaultIfEmpty()
select new Info {Id = obj_1.Id, S_VId = obj_1.VId, T_VId = combinedObj?.VId ?? null};
The result I get is this.
[
{
"Id": "O1",
"S_VId": "V2",
"T_VId": "V2" // want value as V1 here
},
{
"Id": "O2",
"S_VId": "V2",
"T_VId": null // This is correct
},
{
"Id": "O3",
"VId": "V2",
"T_VId": "V2" // want value as V1 here
}
]
combinedObj that is getting populated is from list_1, that's why value I get in my output for T_VId is V2, I want the value of T_VId top be taken from list_2 and be V1.
How should I write the query to achieve this?