1

単語のリストから名前に等しいすべてのタグを見つけようとしています。

例えば ​​:-

public class Tag
{
   public int Id { get; set; }
   public string Name { get; set; }
   public string UserId { get; set; }
}

// Arrange.
var searchWords = new List<string>(new [] {"c#", ".net", "rails"});
var tags = new Tags
               {
                   new Tag { Name = "c#" },
                   new Tag { Name = "pewpew" },
                   new Tag { Name = "linq" },
                   new Tag { Name = "iis" }
               };

// Act.
// Grab all the tags given the following search words => 'c#' '.net' and 'rails'
// Expected: 1 result.
var results = ???

// Assert.
Assert.NotNull(results);
Assert.Equal(1, results.Count);
Assert.Equal("c#", results.First());

使用しようとしていますAnyContains、コードがコンパイルされません。

注:.NET4.0にすることができます

4

1 に答える 1

6

これはあなたのために働きますか?

var results = tags.Where(t => 
    searchWords.Contains(t.Name, StringComparer.InvariantCultureIgnoreCase));

また、assert のプロパティの代わりにメソッドを使用する必要がresultsあることに注意してください。インターフェイスによって定義されたプロパティです。IEnumerable<T>results.Count()results.CountCountICollection

于 2012-07-06T01:20:55.480 に答える