「ids」配列にある各QuestionIDの最新の DataItem レコードを選択したいと思います。LINQ 内で.Valueを使用できないため、ID をNullableに変換しました。ただし、「オブジェクトはIConvertibleを実装する必要があります」というメッセージが表示されます
表:データ項目
------------------------------------
ID | Guid |
DataItemTimeLocal | DateTime |
QuestionID | Guid? |
------------------------------------
Guid?[] ids = GetAllQuestions().Select(x => (Guid?)x.ID).ToArray();
var latestItems = (from di in DataObjects.DataItems
where di.QuestionID != null && ids.Contains(di.QuestionID)
group di by di.QuestionID into g
select g.OrderByDescending(x => x.DataItemTimeLocal).FirstOrDefault()
).ToDictionary(x => x.QuestionID, y => y);