2

私はこの文字列のリストを持っています。検索したキーワードと完全に一致するアイテムのみを除外したいと思います。たとえば、キーワード「in」があり、正確な単語「in」を持つアイテムのみを結果でフィルタリングしたいとします。助けてください。

コード

static IEnumerable<string> GetData()
       {
           var strList = new List<string> 
           { "I'm in love",
            "Coffee contains caffeine",
            "The best inn so far",
            "Inside of me",
            "in the darkness"};
           var filteredItems = strList.Where(x => x.Contains("in"));
           return filteredItems;
       }

私のリストから、アイテム1とアイテム5は、正確に「in」という単語が含まれているアイテムであるため、これらのみを返したいと思います。

ここに画像の説明を入力してください

4

3 に答える 3

5

これを行う1つの方法は次のとおりです。

var filteredItems = strList.Where(x => (" " + x + " ").Contains(" in "));

またはこれ:

var filteredItems = strList.Where(x => Regex.IsMatch(x, "(^| )in($| )"));

大文字と小文字を区別しないバージョン:

var filteredItems = strList.Where(x => (" " + x .ToLower() + " ").Contains(" in "));
var filteredItems = strList.Where(x => Regex.IsMatch(x, "(^|\s)in($|\s)",
                                                     RegexOptions.IgnoreCase));
于 2013-03-21T01:38:25.090 に答える