1. ホーム
  2. c#

[解決済み] MatchCollectionを文字列配列に変換する

2023-03-14 03:08:56

質問

MatchCollectionを文字列配列に変換するために、これより良い方法はありますか?

MatchCollection mc = Regex.Matches(strText, @"\b[A-Za-z-']+\b");
string[] strArray = new string[mc.Count];
for (int i = 0; i < mc.Count;i++ )
{
    strArray[i] = mc[i].Groups[0].Value;
}

P.S: mc.CopyTo(strArray,0) は例外を投げます。

ソース配列の少なくとも1つの要素は、デスティネーション配列の型にキャストダウンすることができませんでした。

どのように解決するのですか?

試してみてください。

var arr = Regex.Matches(strText, @"\b[A-Za-z-']+\b")
    .Cast<Match>()
    .Select(m => m.Value)
    .ToArray();