c# - 如何使用 foreach 循环从数组中选择所需的单词?
问题描述
我想从给定的输入代码中选择所有类的类名。但是我的代码只选择一个类名。我该怎么办?
我正在使用 C# 处理 Windows 窗体。我试过用foreach
循环来做,但它不工作
private void btnDetect_Click(object sender, EventArgs e)
{
// splitting code
string mystr = richTextBox1.Text;
if (mystr.ToLower().Contains("class"))
{
string[] splitText = mystr.Split(new char[] { ' ' });
foreach (string word in splitText)
{
int classindex = Array.FindIndex(splitText, r => r.Contains("class"));
string className = splitText[classindex + 1];
MessageBox.Show(className);
}
}
else
MessageBox.Show("class not found");
}
}
我希望输出显示输入中的所有类名,但我得到的输出只是第一个类名
解决方案
Array.FindIndex
总是返回第一个索引,因为条件永远不会改变。
你可以使用:
string[] tokens = mystr.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
List<string> classList = new List<string>();
for (int i = 0; i < tokens.Length - 1; i++)
{
if (tokens[i].Equals("class", StringComparison.InvariantCultureIgnoreCase))
classList.Add(tokens[++i]);
}
推荐阅读
- azure-devops - GitVersion 将“-pullrequest1089-0002”附加到内部版本号
- android - 间隔 30 分钟的 TimePicker 不起作用
- typescript - “字符串”类型的参数不可分配给“IScriptEditorProps”类型的参数
- java - 使用图像滑块制作图像轮播
- javascript - 当我迭代这个字段数组时,我遇到了这个错误:TypeError: Cannot read property 'map' of undefined
- android - 捕获系统.err
- angular - 调用删除服务在 Angular 中不起作用
- javascript - 从所选选项中获取文本并将其放入文本框中
- python - 将 xml 包对象附加到 python 字典中
- actionscript-3 - 检测连续触摸的单元格以通过碰撞或位置获胜