我正在处理一个应用程序,在该应用程序中,用户将破折号分隔值输入到文本框中,文本框值被放入字符串数组中,由" - "分割。我需要搜索这个数组并获取包含字母" q"的元素的位置。
此文本框中可能有6种不同的输入,输入示例为:
我将文本框值拆分为" - "。代码是:string[] arrayJobSuffix = txtBFSJob.Text.Split(new char[] { '-' }, 5);
现在我需要搜索这个arrayJobSuffix数组并找到包含" q"的元素的位置。
示例,假设数组中的第一个元素为0,则为:
答案 0 :(得分:5)
您可以使用各种方式实现它,例如:
txtBFSJob.Text.Split('-')
.Select((x,idx) => new { x, idx })
.First(c => c.x.Contains("q")).idx;
或者:
var parts = txtBFSJob.Text.Split('-');
int index = Array.IndexOf(parts, parts.FirstOrDefault(x => x.Contains("q"));
如果第一个解决方案找不到包含"q"
第二个解决方案不会抛出异常,只会返回-1
答案 1 :(得分:0)
您可以在这样的循环中使用string.contains()
方法:
for (int i = 0; i < arrayJobSuffix.Length; i++)
{
if (arrayJobSuffix[i].contains("q"))
return i;
}
答案 2 :(得分:0)
public static int GetSearchStringIndex(string[] inputs, char searchString){
int index = -1;
int len = inputs.Length;
for(int i=0; i<len ; i++){
foreach(char c in inputs[i]){
if(c==searchString){
index=i;
break;
}
}
}
return index;
}
public static int GetSearchStringIndex(string[] inputs, string searchString){
int index = -1;
int len = inputs.Length;
for(int i=0; i<len; i++){
if(inputs[i].Contains(searchString)){
index = i;
break;
}
}
return index;
}