有人知道我为什么会犯这个错误吗?
我得到了以下错误:
对象引用未设置为对象的实例
这是问题中的LINQ。谢谢你提前提供帮助。
Dim q = From line In seats
Let data = line.Split(New [Char]() {" "c}, StringSplitOptions.RemoveEmptyEntries) ' it occurs in this line '
Let seatA = data(0)
Let seatB = data(1)
Let seatC = data(2)
Let seatD = data(3)
Let seatE = data(4)
Let seatF = data(5)
Where seatA Is "."
Where seatB Is "."
Select seatA, seatF发布于 2012-04-15 16:04:36
如果将第一行更改为:
Dim windowSeatQuery = From line In seats.Where(function (s) s isnot nothing)这意味着座位列表中有一个空值,上面的Where lambda应该删除它们。
发布于 2012-04-16 17:42:23
你的地方条款在我看来很奇怪。您不应该使用=操作符,而不是Is:
Dim q = From line In seats
Let data = line.Split(New [Char]() {" "c}, StringSplitOptions.RemoveEmptyEntries) ' it occurs in this line '
Let seatA = data(0)
Let seatB = data(1)
Let seatC = data(2)
Let seatD = data(3)
Let seatE = data(4)
Let seatF = data(5)
Where seatA = "." AndAlso seatB = "." '<------ Use = on this line not Is
Select seatA, seatF您确定每一行都是用空格而不是其他什么分隔的吗?即使有在那里,也不应该导致一名空裁判。
下面是我的示例程序,它似乎有效(在LinqPad中测试,它似乎不支持隐式行连续字符):
Sub Main
Dim seats As New List(Of String)()
seats.Add("1 2 3 4 5 6")
seats.Add(". . 9 8 7 6")
seats.Add(". . 5 5 5 5")
seats.Add("1 2 3 4 5 6")
seats.Add(". . 2 4 6 8")
seats.Add("1 2 3 4 5 6")
Dim q = From line In seats _
Let data = line.Split(New [Char]() {" "c}, StringSplitOptions.RemoveEmptyEntries) _
Let seatA = data(0) _
Let seatB = data(1) _
Let seatC = data(2) _
Let seatD = data(3) _
Let seatE = data(4) _
Let seatF = data(5) _
Where seatA = "." AndAlso seatB = "." _
Select seatA, seatF
q.Dump()
End Subhttps://stackoverflow.com/questions/10163178
复制相似问题