Я пытаюсь объединить два списка с существующими данными и данными, которые не существуют, и вернуть оба.Проблема Слияние двух списков
В принципе, при передаче startDate и endDate мне нужно выделить промежутки между ними и создать список, а затем сделать вызов в базу данных и получить данные и слить их в первый список. Я сделал это успешно. Однако мне нужно вернуть весь список, а не только месяцы с данными.
startDate is 5-1-2016
endate is 7-14-2016
Код:
//Create the empty list
if (dateRange == "m")
{
List<DataObject> MonthList = new List<DataObject>();
for (DateTime dt = startDate; dt <= endDate; dt = dt.AddMonths(1))
{
var insertDate = new DateTime(dt.Year, dt.Month, dt.Day);
MonthList.Add(new DataObject
{
data_date = insertDate,
dataParam1 = 0,
dataParam2 = 0,
dataParam3 = 0,
dataParam4 = 0,
dataParam5 = 0
});
}
//Get the Data
List<DataObject> value =
dctx.QueryStoredProcedure<DataObject>("sproc",
parameters).ToList();
// Объединить Списки
var result = value.Join(MonthList, arg => arg.data_date, arg => arg.data_date,
(x, y) =>
new DataObject
{
data_date = y.data_date,
dataParam1 = x.Calories,
dataParam2 = x.ActiveMinutes,
dataParam3 = x.Duration,
dataParam4 = x.Distance,
dataParam5 = x.Steps
}).ToList();
Ожидаемые результаты:
"data_date": "2016-05-01T00:00:00",
"dataParam1": 195007,
"dataParam2": 163069,
"dataParam3": 0,
"dataParam4": 0,
"dataParam5": 951087
"data_date": "2016-06-01T00:00:00",
"dataParam1": 416647,
"dataParam2": 265536,
"dataParam3": 0,
"dataParam4": 0,
"dataParam5": 1650185
"data_date": "2016-07-01T00:00:00",
"dataParam1": 0,
"dataParam2": 0,
"dataParam3": 0,
"dataParam4": 0,
"dataParam5": 0
Фактические результаты: (07-01-2016 отсутствует)
"data_date": "2016-05-01T00:00:00",
"dataParam1": 195007,
"dataParam2": 163069,
"dataParam3": 0,
"dataParam4": 0,
"dataParam5": 951087
"data_date": "2016-06-01T00:00:00",
"dataParam1": 416647,
"dataParam2": 265536,
"dataParam3": 0,
"dataParam4": 0,
"dataParam5": 1650185
Я уверен, что он находится в слиянии, но я попытался также попытаться сделать GroupJoin, но мне не удалось получить значения y для заполнения свойствами объекта. Я явно делаю что-то неправильно.
Был ли мой ответ решить ваш вопрос? Пожалуйста, примите, если это так, или дайте мне знать, с чем еще я могу помочь. Благодарю. – ChiralMichael