我有一行代码会给我一系列会议ID(字符串),当数据表中没有空值时,这些代码ID非常有用:
meetingIDs = meetingDateTable.AsEnumerable.Select(Function(x) x.ScheduleItemID).Distinct.ToArray()
我需要修改该行,使其不会出错,并从结果中排除空值。这是我尝试过的,但仍然会出错:
meetingIDs = meetingDateTable.AsEnumerable.Select(Function(x) x.ScheduleItemID).Where(Function(y) y <> String.Empty).Distinct.ToArray()
有人能告诉我我做错了吗?
编辑: meetingDateTable是一个强类型数据表。 x.ScheduledItemID是一个可以为null的字符串。
答案 0 :(得分:1)
使用@DavidY和@DStanley答案这是最终的解决方案:
project.json
也许可以写得更好?
答案 1 :(得分:0)
如果x.ScheduleItemID
是一个字符串并且可以为null,那么更安全的查询将是
meetingIDs = meetingDateTable.AsEnumerable _
.Select(Function(x) x.ScheduleItemID) _
.Where(Function(y) Not String.IsNullOrEmpty(y)) _
.Distinct.ToArray()
答案 2 :(得分:0)
在选择之前,您可以先过滤掉所有的空ScheduleItemID。
meetingIDs = meetingDateTable.AsEnumerable. _
Where(Function(id) Not String.IsNullOrWhiteSpace(id.ScheduleItemID)). _
Select(Function(y) y.ScheduleItemID)). _
Distinct.ToArray()