问题描述
我有一个格式为“xx,xx,xx|xx,xx”的字符串
我想得到每个 xx 部分,所以我从 string.split('|');
开始
因为零件的数量不是固定数字,所以我想用 foreach 来做。
但是 foreach 中的 Split(',')
不起作用,[iIget this error][1]
string[] lang = RechnungenString.Split('|');
foreach (string item in lang)
{
string parts = item.Split(',');
}
我怎样才能做我想做的事? 谢谢! [1]:https://i.stack.imgur.com/EtXoH.png
解决方法
对您的问题的简单回答是,由于 Split
返回一个字符串数组 string[]
,正如您在代码示例的第一行中所做的那样,您的 parts
变量也必须是string[]
类型以避免该错误:
string[] lang = RechnungenString.Split('|');
foreach (string item in lang)
{
string[] parts = item.Split(',');
// process each triplet here
}
由于您的第一条语句是“我想获取每个 xx 部分”,如果这句话意味着您只想将所有 xx
部分收集到一个字符串数组中,那么您可以大大简化您的代码。 Split
方法有一个重载,允许您指定多个分隔符,因此您的整个代码示例可能只是:
string[] lang = RechnungenString.Split('|',',');
现在 lang
将包含示例字符串中的所有 9 个 xx
元素。
late Timer backgroundFunction; // the Timer which will keep running until some cond is meet.
bool shouldStop = false; // Add some variable to know,when to stop
@override
void initState() {
backgroundFunction = Timer.periodic(const Duration(seconds: 1),(timer) {
shouldStopTImer(); // This will check whether to stop or go on. Every 1 sec
});
}
void shouldStopTImer(){
if(shouldStop){
backgroundFunction.cancel();
}
}
Some logic .......
shoudlStop = true; //When you want to stop. Make it true
替代解决方案:
string[] lang = RechnungenString.Split('|');
foreach (string item in lang)
{
string[] parts = item.Split(',');
foreach (string item2 in parts)
{
// do something with item2
}
}
这需要: foreach (string item in Regex.Split(RechnungenString,"[|]|,"))
{
Console.WriteLine(item);
}