|
■No81855 (夜叉丸 さん) に返信 > bool found = source.Any(v => v.First() == "" || (int.Parse(v.First()) <= num && num <= int.Parse(v.Last()))); > これでいいんですよね 要件を満たせていると思います。
>>strb.Length >= 3 なデータは想定していません。 > もし、この場合にはエラーとして抽出することはできますか? 文字列解析として、最初に正規表現でチェックするのが良いと思います。
> dest の文字が source にすべて含まれているかどうかを調べるのに > 同様の方法は使えるのでしょうか? > string[] source = new string[] { "A", "B", "C", "D" }; > string[] dest = new string[] { "A", "C" }; > ※いずれも個数は不定
こうかな。
return dest.All(source.Contains);
> string[] strdata = { "5,7-9,11", "12,16-18" };
strdata は 2 つの文字列を持つようですが、どちらの要素に ヒットしたのかを区別する必要もあるのでしょうか?
提示された元のループ式を観る限り、元データは string[] strdata = { "5,7-9,11", "12,16-18" }; // オリジナル string[] strdata = { "5,7-9", "11-12,16-18" }; // 11を移動 string[] strdata = { "5,7-9,11,12,16-18" }; // 繋げて一つに string[] strdata = { "5,7-9,11-12,16-18" }; string[] strdata = { "5", "7-9", "11", "12", "16-18" }; // 全部分解 のいずれであっても、すべて同じ条件に見えるのですが。
> "" の場合にはすべてに合致(発見)としたいのですが string[] strdata = {"", "3"}; string[] strdata = {"3", ""};
のいずれでも構わないのなら、 found = strdata.Contains("") || source.Any(…略…); という手もありますね。
|