C# 试图通过.NET Linq中的where子句集合查找一些标记

C# 试图通过.NET Linq中的where子句集合查找一些标记,c#,.net,linq,.net-4.0,C#,.net,Linq,.net 4.0,我试图从单词列表中找到所有与名字相等的标签 例如:- 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 =

我试图从单词列表中找到所有与名字相等的标签

例如:-

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());
公共类标记
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共字符串用户标识{get;set;}
}
//安排。
var searchWords=新列表(新[]{“c#”,“.net”,“rails”});
var标记=新标记
{
新标记{Name=“c#“},
新标记{Name=“pewpew”},
新标记{Name=“linq”},
新标记{Name=“iis”}
};
//表演。
//抓取以下搜索词=>'c#'.net'和'rails'给出的所有标记
//预期结果:1。
var结果=???
//断言。
Assert.NotNull(结果);
Assert.Equal(1,results.Count);
Assert.Equal(“c#”,results.First());
我一直在尝试使用
Any
Contains
,但我的代码就是无法编译


注意:Can.NET 4.0是否适合您

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

还请注意,由于
results
IEnumerable
,因此您需要在断言中使用方法
results.Count()
而不是属性
results.Count
Count
是由
ICollection
接口定义的属性。

这对您有用吗

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

还请注意,由于
results
IEnumerable
,因此您需要在断言中使用方法
results.Count()
而不是属性
results.Count
Count
是由
ICollection
接口定义的属性。

确实是,除非调用
.ToList():)使其成为不变字符串比较的额外点数:)(即,不必担心任何一个字符串的情况(在任何一个列表中)BRAVO小伙子!我担心它会是一个答案,在代码的深处有一个“代码”>索引>。用我可怜的同情心拿我的绿蜱,知道你创造了一个人,在某处,Down DownUnder……很高兴听到它……嗯……伙伴。的确,除非你调用<代码>。使其成为不变字符串比较的额外点数:)(即,不必担心任何一个字符串的情况(在任何一个列表中)小伙子!我担心这会是一个答案,用<代码>索引> <代码>在查询的最深处。用我可怜的同情心把我的绿蜱记下来,知道你已经创造了一个人,在某处,Down DownUnder……很高兴听到它……嗯……伙计。