吵吵   2020-11-19  阅读:1,356

Cache的代码写多了,就非常喜欢$piece函数,分割字符串是非常方便的。不像在c#中,split函数简直烂。

那么,我们在c#中经常用到的链表List,在Cache数据库中,是怎么实现的呢?

缘起于我们用Mthod返回一些不太长的数据,但是数据往往有几行。

用Query来做吧,定义和实现实在是繁琐。可参考前一篇文章。

那么我们一般就找一些不常用的符号如^或者|来隔开数据,然后拼成一个字符串进行返回。

一行数据倒是还行,要是数据里面是链表下面还有链表,那就不太好手工实现了。

因此我们要使用%List这个类来实现链表。

我在Cache的帮助文档中发现了这个类,但是却发现这个类并没有类似于Add Insert的功能,一时头大,竟然不知道如何赋值如何取值,连个类的%New方法都没有。

然后就找到了$List这个函数,原来%List算不上Cache真正的类,只能算是类似%String一样的基础数据类型吧,因此也不要New。

因此%List的赋值和取值就是简单的一个$List函数


s $List(row,1)=testCode
s $List(row,2)=name
...

然后链表本身也可以作为父链表的子元素

s $List(list,1)=row

当然,我们还可以用$LISTBUIDER等函数来构造List。我们可以直接用write来输出一下List,结果可以看到是用了一些非常用的字符来分割字符串形成的List。

然后还可以看到一些关于LIST的函数,如$LISTLENGTH $LISTNEXT等等一些函数。

Cache里面的List使用搞清楚了,那么c#里面呢?

CacheObject提供了一个syslist的类来接收链表数据,元素的获取就是

list.ItemList[i] //元素还是个链表
list.Item[i] //元素是个Dynamic动态编译的object

好了,虽然也不那么好用,至少还是比split强吧。

如无特别说明,本博客文章皆为原创。转载请说明,来自吵吵博客。

原文链接:http://chaochaoblog.com/archives/3975

吵吵微信朋友圈,请付款实名加入:

吵吵 吵吵

发表评论

电子邮件地址不会被公开。 必填项已用*标注