我试图制作能够识别不同命令的机器人。例如,一个命令将是" add 'x text' "
,作为TODO列表。我已经通过将输入拆分为数组,然后获取array[0]
或者第一个始终是命令的单词来设置对命令的识别。现在,我想以某种方式保存除了关键字(AKA [0])之外被拆分的句子中的其他项目,意思是[1] [2] [3]等。获取所有项目的一种方法是什么[0]一个?我试图通过执行以下操作跳过它:myarray.Skip(x)
,但我无法使其正常工作。谢谢你的所有建议!
答案 0 :(得分:2)
正如@ L-Three建议的那样,您可以使用string.Join(" ", myarray.Skip(1).ToArray())
来获取字符串的其余部分而不使用第一个字。
myarray.Skip(x)
的示例无法正常工作,因为Skip(x)
是Linq函数,因此它是deferred execution操作。这意味着您刚刚描述了您需要做的事情,但行动尚未执行。致电' .ToArray()
',' .ToList()
'例如(正如L-Three在他的解决方案中使用的那样)将执行该动作。
重要的是要注意,还有其他方法可以实现您想要的(例如使用正则表达式 - 正如评论中已经建议的那样),这可能比您现在使用的方法更安全。