以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  自定义函数错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145709)

--  作者:tld
--  发布时间:2020/2/5 13:00:00
--  自定义函数错误
老师,帮忙看看自定义函数有什么问题?这个自定义函数取名:List_PublicMembers,目的是找出两个集合的公共部分。

下面是自定义函数的代码

Dim list1 As List(of String)= args(0)
Dim List2 As List(of String)= args(1)
Dim List0 As List(of String)
Dim st1 As String
Dim st2 As String
For Each st1 In List1
    For Each st2 In List2
        If st1=st2 Then
            List0.Add (st1)
            Exit For
        End If
    Next
Next
Return List0

下面是调用该自定义函数的代码:
其中,lis1、lis2是集合,里面确定有公共成员。
Dim li As List(of String)
li=Functions.Execute("List_PublicMembers",lis1,lis2)

错误信息:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.1.12.18
错误所在事件:自定义函数List_PublicMembers
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。



请老师帮忙看看。谢谢!


--  作者:有点蓝
--  发布时间:2020/2/5 14:04:00
--  
Dim list1 As List(of String)= args(0)
Dim List2 As List(of String)= args(1)
Dim List0 As new List(of String)
Dim st1 As String
Dim st2 As String
For Each st1 In List1
    If List2.Contains(st1) Then
        List0.Add (st1)
    End If
Next
Return List0

或者

Dim list1 As List(of String)= args(0)
Dim List2 As List(of String)= args(1)
Dim List0 As new List(of String)

Dim lst = list1.Intersect(list2)
For Each s As String In lst 
    List0.Add(s)
Next
Return List0
[此贴子已经被作者于2020/2/5 15:09:40编辑过]

--  作者:tld
--  发布时间:2020/2/5 15:06:00
--  
Intersect,这个方法好。谢谢蓝老师