|
■No100769 (あい さん) に返信 > 医療の質・安全/r/n医療安全の基本的考え方/r/nのようになってしまっています。 "医療の質・安全\r\n医療の質・安全\r\n" のように、同じコンテンツが重複指定されることはありますか?
> この場合、インデックス番号を複数取得し、 存在しないコンテンツが含まれる可能性があるのかも不明です。 "文書の朱里\r\n文書の首里城\r\n" などのように。
未知のコンテンツに対してエラーにするパターンもあれば、 -1 をインデックスとして返すというパターン、あるいは 存在自体を無視するといった選択肢もあろうかと思います。
さらに、インデックスの並びはどうあるべきか、という疑問もあります。 たとえば "医療の質の基本的考え方\r\n製品・サービス\r\n顧客\r\n" に対しては インデックス順に {2, 5, 6}としたいのか、出現順に {2, 6, 5} と返すべきなのか。
string[] list = { "医療分野の環境", "患者満足と地域社会への貢献", "医療の質の基本的考え方", "医療の質・安全", "医療安全の基本的考え方", "顧客", "製品・サービス", "文書化と文書管理", "文書の朱里", "文書の体系", "文書管理の方法", "医療の質とモノの管理の関係", "日常管理の実施方法", "問題解決の手法" };
string searchText = "医療の質の基本的考え方\r\n製品・サービス\r\n顧客\r\n";
string[] m = searchText.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
// { 2, 6, 5 } となる int[] indexArray1 = m.Select(s => Array.IndexOf(list, s)).Where(i => i >= 0).ToArray();
// { 2, 5, 6 } となる int[] indexArray2 = list.Select((s, i) => m.Contains(s) ? i : -1).Where(i => i >= 0).ToArray();
|