のような文字列の配列があり、{"ABC_DEF_GHIJ", "XYZ_UVW_RST", ...}
配列に部分的に一致する文字列が含まれているかどうかを検索したいと考えています"ABC_DEF"
。インデックス (0) または文字列自体 ("ABC_DEF_GHIJ") を返す必要があります。私は試した:
int index = Array.IndexOf(saGroups, "ABC_DEF");
しかし、それは -1 を返します。
これを試して:
string[] strArray = { "ABC_DEF_GHIJ", "XYZ_UVW_RST" };
string SearchThisString = "ABC_DEF";
int strNumber;
int i = 0;
for (strNumber = 0; strNumber < strArray.Length; strNumber++)
{
i = strArray[strNumber].IndexOf(SearchThisString);
if (i >= 0)
break;
}
Console.WriteLine("String number: {0}",strNumber);
文字列配列をループして、IndexOf
検索する文字列が含まれているかどうかをメソッドですべての要素を確認するだけです。IndexOf
文字列以外の値を返す場合は-1
、現在の要素で見つかり、そのインデックスを返すことができます。配列のどの要素にも検索する文字列が見つからない場合は、-1 を返します。
static int SearchPartial(string[] strings, string searchFor) {
for(int i=0; i<strings.Length; i++) {
if(strings[i].IndexOf(searchFor) != -1)
return i;
}
return -1;
}
デモについては、https://ideone.com/vwOERDを参照してください