【UiPath2022+C#】UiPath 练习-数据操作

【UiPath2022+C#】UiPath 练习-数据操作

环境

UiPath Studio Community 2022.4.3

Windows

C#

练习

练习 1 - 列表
对列表进行排序并打印 3 个值

给定国家/地区的输入列表,请对该列表进行排序,并按降序打印前 3 个值。

注意: 请使用此值初始化列表:new List(of String) from {“Germany”, “Spain”, “Japan”, “Brazil”, “India”, “China”}。

解决方案
  1. 序列形式启动项目,并使用以下默认值定义字符串变量(“country”)的列表,默认值为:new List(string) (){“Germany”, “Spain”, “Japan”, “Brazil”, “India”, “China”}。
  2. 添加一个调用方法活动。在“方法名称”下写入“Sort”,在“目标对象”下写入“country”。保持“目标类型”不变 (null)。
  3. 在“方法名称”下再添加一个“调用方法”活动。在“方法名称”下写入“Reverse”,并填写其他 2 个字段,就像在前面的“调用方法”中一样
  4. 创建一个新的字符串变量列表newVariable
  5. 向“设计器”面板添加一个分配活动。
  6. 字段中,输入原始变量的名称,再输入 country.GetRange(0,3)。此变量将前三个值存储在排序列表中。
  7. 添加一个写入行活动。这将打印值。
  8. 使用string.Join方法:string.Join (", ", newVariable.ToArray()),在写入行活动的文本中。

在这里插入图片描述

练习 2 - 列表和日期时间
验证列表中的日期在今年是否已过

给定格式为 dd.MM.yyyy 的输入字符串列表,请检查是否有任何日期的月份与当前月份相同,然后打印该日期以输出。

对于具有不同月份的日期,请打印以输出从当前日期到列表日期(当年)为止经过/到期的天数。

注意: 使用以下值初始化列表:new List(string) from {“01.02.1980”, “04.05.1985”,“06.08.1988”,“24.09.1999”,“18.11.1986”,“11.10.1983”}

解决方案

在序列中使用遍历循环活动遍历列表中的所有项目(“变量名中的遍历循环项目”),并在正文中使用以下活动和方法:

  1. 创建一个日期时间变量(“dateTime”),并使用DateTime.ParseExact方法 ,在“分配”活动中,以转换为日期时间:dateTime= DateTime.ParseExact(item, “dd.MM.yyyy”, null)

  2. 使用“IF 条件”活动以验证项目的月份是否与当前月份相同:dateTime.Month == DateTime.Today.Month:

    • 如果满足条件,则使用写入行活动和“ToString(“yyyy-MM-dd”)”方法打印消息。
    • 如果不满足条件,则使用以下活动和方法添加序列:
    • a. 使用“分配”活动中的“Subtract”方法创建一个新的 int32 类型的变量(“day”),以计算当月与项目月份之间的差值:day = DateTime.Now.Subtract(new DateTime(DateTime.Today.Year, dateTime.Month, dateTime.Day)) .Days
    • b. 将条件声明为 day > 0,然后使用“IF 条件”活动验证日期是未来日期还是过去日期,并使用“写入行”活动中的“String.Format”方法为过去或未来月份打印不同的消息:string.Format(“从当前日期到列表日期(当年{0}月{1}日)为止经过{2}天”,dateTime.Month, dateTime.Day,day) 和 string.Format(“从当前日期到列表日期(当年{0}月{1}日)为止到期还剩下{2}天”,dateTime.Month, dateTime.Day,Math.Abs(day)).

    流程和变量

    在这里插入图片描述

    If语句

在这里插入图片描述

练习 3 - 字典和整数
计算并打印每位环法自行车赛冠军的获胜次数

给定包含年份和姓名的输入字典,请计算每位冠军的获胜次数,并打印所有冠军的姓名及其相应的获胜次数。

注意: 使用以下值初始化(Int32、字符串)类型的字典 - New Dictionary(Of Int32,String) From {{2006,“Oscar Pereiro”},{2007,“Alberto Contador”}, {2008, “Carlos Sastre”}, {2009,“Alberto Contador”}, {2010, “Andy Schleck”}, {2011, “Cadel Evans”}, {2012,“Bradley Wiggins”}, {2013,“Chris Froome”}, {2014,“Vincenzo Nibali”},{2015,“Chris Froome”},{2016,“Chris Froome”},{2017,“Chris Froome”}, {2018,“Geraint Thomas”}}

解决方案
  1. 序列形式启动项目并创建一个新的字典,类型为 (String, Int32)
  2. 利用“遍历循环”(“遍历 FirstDictionaryName.Values 中的 WinnerNames”)遍历第一个字典中的值,并检查该值是否已存在且已作为新字典的键,检查时使用**.ContainsKey方法**, 该方法在“IF 条件”活动(“SecondDictionaryName.ContainsKey(WinnerName)”)中:
    1. 如果满足条件,则使用“分配”活动以增加相应键的值:WinnerCounts(WinnerName) = WinnerCounts(WinnerName) + 1
    2. 如果不满足条件,则使用“调用方法”活动将键添加到第二字字典,其值为“1”,以及使用目标对象添加第二个字典名称,并“Add”作为方法名称
  3. 使用“遍历循环”活动遍历第二个字典(“SecondDictionaryName 中的遍历循环冠军”),并利用“写入行”活动打印所有冠军的姓名及其相应的获胜次数。

流程和变量

在这里插入图片描述

遍历循环

在这里插入图片描述

练习 4 - 字典和双精度数
计算发送到一个城市的包裹总重量

考虑某家航运公司的数据库,其中包含公司人员,以及公司发往世界各地某些城市的包裹及其重量。该数据库是一个字典,其键为字符串类型(人员姓名),值为字典类型(字符串/城市、双精度数/重量)。

请计算一个城市目的地的总重量。计算完成后,应向用户显示一个输入对话框,其中包含输入数据字典中显示的不同城市列表。如果用户没有从输入对话框中选择任何值,则打印“用户未选择任何值”;否则,您可以打印“发送到 <选定城市> 的包裹总重量为 x.xx”(使用两位数)。

注意:对于输入数据,请下载下面已定义字典的工作流。

New Dictionary(Of String, Dictionary(Of String, Double)) From {

{“John C”, New Dictionary(Of String, Double) From {{“Madrid”,2.1},{“Paris”,1.1}} },

{“Sarah C”, New Dictionary(Of String, Double) From {{“New York”,2.1},{“Paris”,3.3},{“Berlin”, 0.8}} },

{“Kyle R”, New Dictionary(Of String, Double) From {{“San Francisco”,2.8},{“NewYork”,1.1}} },

{“Johnny B”, New Dictionary(Of String, Double) From {{“New York”,2.1},{“Paris”,3.3}, {“Cairo”,1.3},{“Chicago”,1.9}} }}

解决方案
  1. 序列形式启动项目.
  2. 使用“遍历循环”遍历初始字典的值,然后(在正文中)使用“遍历循环”活动遍历第二个字典(城市)的键,并检查字典中是否已有城市,(使用“IF 条件”和“包含”方法):
    1. 如果满足条件,则使用“分配”活动将存储在相应值中的重量添加到现有值中;
    2. 如果不满足条件,则使用“分配”活动将存储在相应值中的重量;

3.使用“输入对话框”活动,通过在“活动”属性的“选项”下使用 SecondVariableName.Keys.ToArray() 显示所有城市

a.如果用户选择城市,则使用“写入行”打印“发送到 <选定城市> 的包裹总重量为 x.xx”。

流程和变量

在这里插入图片描述

For Each配置

在这里插入图片描述

If配置

在这里插入图片描述

练习 5 - 输入验证
验证用户的字符串输入

开发一个工作流,根据一组规则要求用户输入文本,并将输入验证的规则合并到工作流。

更具体地说,用户输入的字符串必须通过以下验证规则:

  • 最小长度:8 个字符
  • 以大写字母开头
  • 最多 20 个字符

若输入不符合规则,允许用户有 3 次重新输入的机会(不考虑用户未输入任何内容的情况)。

注意: 在本练习中,请使用流程图。

解决方案
  1. 流程图的形式启动项目(考虑到预期的大量决策点),并通过“消息框”将规则告知用户。
  2. 向用户显示“输入对话框”。
  3. 检查用户是否已在输入字段中输入任何内容。如果未提供任何文本,则返回到"输入对话框"阶段。
  4. 使用正则表达式验证输入文本正则表达式(“是匹配”活动)-“高级”类型,"^[A-Z]{1}\w{7,18}$"
  5. 使用 Int32 变量计算用户输入尝试失败次数(不考虑未输入任何内容)。
  6. 使用决策节点检查用户是否已达到 3 次失败尝试。
  7. 如果用户达到最多 3 次失败尝试,则使用“写入行”活动输入以输出以下消息:“超出最大重试次数”,并结束执行。
  8. 如果正则表达式验证通过,则打印以下消息以输出:“您的文本遵循规则!”,并结束执行。您可以使用变量存储向用户显示的文本。

流程和变量

在这里插入图片描述

练习 6 - 更换占位符
获取输入信息并用来填充字符串

您具有以下模板:“ <姓名>,您好,我们想邀请您参加下周 <星期几> 的开幕活动,请在本周末之前确认。"

创建一个工作流以获取用户输入,并替换上述短语中提供的输入数据。

注意: 请使用上面的文本创建一个字符串变量。

解决方案
  1. 序列形式启动项目,并创建2 个字符串变量,分别存储姓名和星期几。
  2. 使用 2 个“输入对话框”活动来获取用户的输入。
  3. 对输入数据的 2个字符串中的每个字符串,在“分配”活动中使用“Replace”方法:VariableName = VariableName.Replace(“”,“”)。
  4. 使用“写入行”活动打印输出。

流程和变量

在这里插入图片描述

练习 7 - 使用正则表达式提取电子邮件地址
从字符串提取电子邮件地址(使用正则表达式)

给定一个包含一个电子邮件地址的字符串,创建一个工作流以使用正则表达式提取电子邮件地址。

注意: 对于输入,请使用具有以下值的字符串变量:“Please use the following address to contact me john.doe@localcompany.com, it’s the company email”。

解决方案
  1. 序列形式启动项目.
  2. 使用“匹配项”活动和为电子邮件地址量身定制的正则表达式,并使用 IEnumerable 变量 存储所提取的电子邮件地址。
  3. 使用“遍历循环”活动遍历所创建的变量中的值,并使用“写入行”活动和“值”方法显示值。

流程和变量

在这里插入图片描述

正则配置

在这里插入图片描述

文档

循环
If条件语句
数据操作

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会敲键盘的肘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值