我想为“ids”数组中的每个 QuestionID 选择最新的 DataItem 记录。 因为我不能在 LINQ 中使用 .Value,所以我已将 ID 转换为 Nullable。但是我现在得到一个'Object must implement 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);
最佳答案
Guid[] ids = GetAllQuestions().Select(x => x.ID).ToArray();
var latestItems = (from di in DataObjects.DataItems
where di.QuestionID.HasValue &&
ids.Contains(di.QuestionID.Value)
group di by di.QuestionID into g
select g.OrderByDescending(x => x.DataItemTimeLocal)
.FirstOrDefault()
).ToDictionary(x => x.QuestionID, y => y);
关于c# - LINQ 包含可空 guid 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646871/