我需要一个客户端列表,其中选择了客户端或选择了客户端的父代。所以我想要一个列表,其中包括选择父项的整个家庭。需要父母或子女的客户名单; List.Any in Selection.Contains
所以我想要ClientList中的所有项目,其中ClientList.ParentNum或ClientList.ClientNum存在于SelectedList.ClientNum中。
Dim ClientList As New List(Of ClientList.Client)
'add a parent
ClientList.Add(New ClientList.Client With {.ClientNum = "1234"})
'add a child
ClientList.Add(New ClientList.Client With {.ClientNum = "1240", .ParentNum = "1234"})
'add more clients
ClientList.Add(New ClientList.Client With {.ClientNum = "0400"})
ClientList.Add(New ClientList.Client With {.ClientNum = "0500"})
ClientList.Add(New ClientList.Client With {.ClientNum = "0600"})
'select one or more clients
Dim SelectedList As New List(Of ClientList.Client)
SelectedList.Add(New ClientList.Client With {.ClientNum = "1234"})
SelectedList.Add(New ClientList.Client With {.ClientNum = "0400"})
'get ClientList.Any that includes both the parents and their children
Dim printlist As List(Of ClientList.Client) = _
ClientList.Any(Function(x) SelectedList.Contains(_
Function(y As ClientList.Client) y.ClientNum = x.ClientNum _
Or y.ClientNum = x.ParentNum)).tolist
所以在这里我应该从ClientList中获得3个客户端作为PrintList。包括客户端将是1234,1240和0400.
当然,这是不工作的语法是乱码,但我不知道如何得到我需要的列表。你能帮我吗?
Here is the compile error: Overload resolution failed because no accessible 'Contains' can be called with these arguments: 'Public Function Contains(item As PrintOrgs.ClientList.Client) As Boolean': Lambda expression cannot be converted to 'Print_Taxes.PrintOrgs.ClientList.Client' because 'Print_Taxes.PrintOrgs.ClientList.Client' is not a delegate type. Extension method 'Public Function Contains(value As PrintOrgs.ClientList.Client) As Boolean' defined in 'System.Linq.Enumerable': Lambda expression cannot be converted to 'Print_Taxes.PrintOrgs.ClientList.Client' because 'Print_Taxes.PrintOrgs.ClientList.Client' is not a delegate type.