如何获取包含特定字母的字符串数组元素的位置

Cor*_*ius 0 c# arrays textbox split

我正在开发一个应用程序,用户将破折号分隔值输入文本框,文本框值放入字符串数组,用" - "分隔.我需要搜索这个数组并获得包含字母"q"的元素的位置.

此文本框中可能有6种不同的输入,输入示例如下:

  • "292"
  • "292-0"
  • "292-0-10"
  • "292-Q10"
  • "292-0-Q10"
  • "292-0-10-Q10"

我将文本框值拆分为" - ".代码是:string[] arrayJobSuffix = txtBFSJob.Text.Split(new char[] { '-' }, 5);

现在我需要搜索这个arrayJobSuffix数组并找到包含"q"的元素的位置.

例如,假设数组中的第一个元素为0,则:

  1. 如果文本框中的值为"292","292-0"或"292-0-10",则返回-1或不存在指示"q"的内容.
  2. 如果文本框中的值为"292-q10",则返回1
  3. 如果文本框中的值为"292-0-q10",则返回2
  4. 如果文本框中的值为"292-0-10-q10",则返回3等等...

Sel*_*enç 5

您可以使用各种方式实现它,例如:

txtBFSJob.Text.Split('-')
.Select((x,idx) => new { x, idx })
.First(c => c.x.Contains("q")).idx;
Run Code Online (Sandbox Code Playgroud)

要么:

var parts = txtBFSJob.Text.Split('-');

int index = Array.IndexOf(parts, parts.FirstOrDefault(x => x.Contains("q"));
Run Code Online (Sandbox Code Playgroud)

如果找不到任何包含的结果,第一个解决方案将抛出异常 "q"

第二个解决方案不会抛出它将返回的异常 -1