Вы можете сделать это легко с .NET 4:
var dictionary = listints.Zip(listdates, (value, key) => new { value, key })
.ToDictionary(x => x.key, x => x.value);
Без .NET 4 это немного сложнее, хотя вы всегда можете использовать грязный хак:
var dictionary = Enumerable.Range(0, listints.Count)
.ToDictionary(i => listdates[i], i => listints[i]);
РЕДАКТИРОВАТЬ: Согласно комментарию, это прекрасно работает с явно типизированной переменной:
IDictionary<DateTime, int> kamptslist =
listints.Zip(listdates, (value, key) => new { value, key })
.ToDictionary(x => x.key, x => x.value);