表达式使用交流

经验创意 · 1783 次浏览
CL 创建于 2020-04-08 22:27

表达式可以用来做比较、计算等数据处理。如果你有表达式使用方面的疑问或经验,欢迎在本帖下留言。

  • 比较列表是否为空列表: $= {列表变量}.Count() == 0

  • 比较列表是否只有一项并且内容为指定的值: $= {列表变量}.Count() == 1 && {列表变量}[0] == "对比的值"

  • 取“x,y”形式坐标中的x:$= {x,y形式的文本类型坐标变量}.Split(',')[0]  

相关文档:

- 表达式:https://www.yuque.com/quicker/help/expression

- 在“如果”模块中使用表达式:https://www.yuque.com/quicker/help/if#XAN0k

CL 最后更新于 2020/4/9

回复 x
回复内容
治钧 2020-04-08 23:41
#1

判断词典是否为空词典:

$= {词典变量}.Count() == 0


回复 x
治钧 2020-04-09 11:35
#2

列表A有元素:a、b、c

列表B有元素:b、c、d

要找到A中有而B中没有的元素(这里是元素a):

$= {A}.Except({B})   


回复 x
linex 2020-04-09 21:45
#3

表达式使用非常方便,效率很高。例如:

判断一个字符串 s 是否为空,或者是否全部由空格组成:

$= String.IsNullOrWhiteSpace({s})

根据文件的完整路径  filename  获取文件名:

$= {filename}.Substring({filename}.LastIndexOf("\\") + 1)

根据 list 拼接为列表显示字符串:

$= String.Join("\n", {list})

如果字符串为空,则使用其他字符串,否则使用该字符串:

$= {s}.Length == 0 ? "默认字符串" : {s}

一个列表是否包含任意的元素:

$= {list}.Contains({s})

字符串插值(把一些值插入到字符串中),如 a = hello, b = world

使用加号:

$= {a} + "," + {b} + "!" 

使用 String.Format:

$= String.Format("{0},{1}!", {a}, {b})
结果都是 hello,world!

如果有一个列表 list,格式为 [a=b, c=d, e=f] 如何用一行代码(狗头)检测其中是否存在不全(如[a=b, c=, e=f])的字符串这种的状况:

String.Join("=", {list}).Contains("==")
linex 最后更新于 2020-04-10 22:08

回复 x
治钧 2020-04-10 13:18
#4

比较两个列表(词典)的内容是否相同:

$= {列表A}.SequenceEqual({列表B})

$= {词典A}.SequenceEqual({词典B})


请问返回值是什么类型啊

化栀子 2020-06-29 15:21
回复 化栀子 :

布尔(是否)

CL 2020-06-29 15:22
回复 CL :

那返回的布尔值给传递给哪个变量呢,还是表示式本身就是呢,需要自己再定义一个变量再接收吗(本人小白,兴趣使然,谢谢CL的回答)

化栀子 2020-06-29 15:29
回复 化栀子 :

表达式的结果传递给使用表达式那个地方的参数。

CL 2020-06-29 15:31
回复 x
治钧 2020-04-10 14:27
#5

获取变量类型:

$= {变量}.GetType()


回复 x
我也是小黑 2020-06-19 16:29
#6

检查列表里是否含有某个元素(字符串或者是文本变量,全字匹配),两种方式:

$={列表变量}.Contains("元素")

输出结果是一个布尔值,true 或 false

$={列表变量}.IndexOf("元素")

输出结果是一个数字值,该元素的索引值或者是 -1(既列表内没有该元素)

----------------------------

检查字典里是否含有某个键:

$={字典变量}.ContainsKey("键")

输出结果是一个布尔值,true 或 false

我也是小黑 最后更新于 16天12小时前

回复 x
我也是小黑 2020-06-24 21:23
#7

截取列表 GetRange(int, int),其中 int 为元素的位置索引,如截取列表上第 2 个位置至最后一个位置上的所有元素:

$={列表}.GetRange(1, {列表}.Count()-1)

CL 提供的写法

$={列表}.Skip(1).Take({列表}.Count()-1)
我也是小黑 最后更新于 18天20小时前

回复 x
Marcus 2020-06-30 14:41
#8
指定小数点保留位数:
{数字}.ToString("f2") //转换成文本,2代表小数位数,四舍五入。
((int)({数字}*100))*0.01 //先乘以100,保留整数后再乘以0.01转成两位小数,不四舍五入。
Math.Round({数字},2) //保持数字状态,2代表小数位数,四舍六入奇进偶舍。


判断词典内是否存在某个键Key:{词典}.ContainsKey("Key")
正则从右往左替换:Regex.Replace({文本变量},"正则表达式","替换内容",RegexOptions.RightToLeft)

--------------------

Marcus 最后更新于 9天16小时前

回复 x
回复主贴