以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  合并字符集合为一个字符串的简单方法。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=487)

--  作者:贺老六
--  发布时间:2008/9/14 9:49:00
--  合并字符集合为一个字符串的简单方法。
String有一个共享方法Join,可以将一个字符数组用指定的分割符号合并为一个字符串。
该方法只能合并数组,不能合并集合
但是集合有一个ToArray的方法,可以将集合转换为数组。
所以合并集合为字符串的方法其实很简单:

dim lst as new list(of string)
lst.add("abc")
lst.add("123")
output.show(string.join("|",lst.ToArray))
[此贴子已经被作者于2008-9-14 9:50:51编辑过]

--  作者:kylin
--  发布时间:2008/9/14 10:09:00
--  
应该是帮助中没写进去的吧。
顶一下!
--  作者:贺老六
--  发布时间:2008/9/14 10:12:00
--  
会写进去的。
--  作者:kylin
--  发布时间:2008/9/14 10:16:00
--  
OK

--  作者:kylin
--  发布时间:2008/9/14 11:09:00
--  
 

  用“ 窗口组合框除去重复”帖子

http://www.foxtable.com/dispbbs.asp?boardid=2&Id=486
取不重复的PrepareEdit中事件,如何用以上的Join方法改造以下代码?
 Dim drs As New List(Of DataRow)
        Dim Val AS String = "|"
        \'从单位区域获得该县名的全部行
        drs = DataTables("单位").Select("[乡名] = \'" & e.Row("乡名") & "\'")
        For Each dr As DataRow In drs
            Val = Val & "|" & dr("村名")
        Next
        e.Col.Combolist = Val

--  作者:贺老六
--  发布时间:2008/9/14 11:20:00
--  
呵呵,当然可以的
--  作者:贺老六
--  发布时间:2008/9/14 11:30:00
--  
e.Col.Combolist = String.Join("|", drs.ToArray)
--  作者:kylin
--  发布时间:2008/9/15 8:09:00
--  
       从以上的代码改为如下:
        Dim drs As New List(Of DataRow)
              \'从单位区域获得该县名的全部行
        drs = DataTables("单位").Select("[乡名] = \'" & e.Row("乡名") & "\'") 
          
          e.Col.Combolist = String.Join("|", drs.ToArray)
会出现错误提示

图片点击可在新窗口打开查看此主题相关图片如下:tp2.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2008/9/15 8:13:00
--  
呵呵,搞错了,别用select,用getuniquevalues取得值的集合,才能用join合并。
--  作者:kylin
--  发布时间:2008/9/15 8:28:00
--  

哦,刚才就有这么一闪念,看来用getuniquevalues取得值的集合,才是string的集合,才能用join合并。
谢谢!