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……很高兴听到它……嗯……伙计。