Assert.IsTrue(benefits.Count(P => string.IsNullOrEmpty(P.bCode)) > 0);
另一个好处是Obj类型的对象列表...它具有一个属性bCode。如何检查通用列表中的空项目
我想检查列表中的所有项目是否有“bCode”...不为空且不为空。
Assert.IsTrue(benefits.Count(P => string.IsNullOrEmpty(P.bCode)) > 0);
另一个好处是Obj类型的对象列表...它具有一个属性bCode。如何检查通用列表中的空项目
我想检查列表中的所有项目是否有“bCode”...不为空且不为空。
benefits.All(b => !String.IsNullOrEmpty(b.bCode));
您可以在MSDN上阅读Enumerable.All
。请注意,它表现出“短路”行为,如&&
(这与它类似)。如果你希望你的测试跑步者,你可以包装这是Assert.IsTrue
。
你应该认真考虑将bCode
重命名为BenefitCode
,假设它代表它。没有理由不使用有意义的商业名称。你的ORM可以处理它。
试试这个:
benefits.TrueForAll(P=> !string.IsNullOrEmpty(P.bCode))
Assert.IsTrue(!benefits.Any(p => string.IsNullOrEmpty(p.bCode)));
如果我理解正确的话,你要保证在benefits
没有bCode
属性为空或空?你提供的代码不工作吗?这个怎么样:
Assert.IsTrue(benefits.Where(b => string.IsNullOrEmpty(b.bCode)).Count() == 0);
如果你也想确保每个项目的利益不为空(这你的问题没有指定),您可以使用此:
Assert.IsTrue(!benefits.Any(p => p == null || string.IsNullOrEmpty(p.bCode)));
.NET 2.0版本:
List<Obj> findResults = benefits.FindAll((Predicate<string>)delegate(Obj item)
{
return !string.IsNullOrempty(item.bCode);
});
return findResults.Count == benefits.Count;
小正确使用.Trim() 这将在理想情况下工作,但在下列情况下将不起作用
Assert.I sTrue(!benefits.Any(p => string.IsNullOrEmpty(p.bCode)));
string[] input = new[] {"A", "", "B"," ", "C", "D"};
int count = input.Count(i => string.IsNullOrEmpty(i));
Console.WriteLine(count); // Result will be 1 now which is incorrect
使用
string[] input = new[] {"A", "", "B"," ", "C", "D"};
int count = input.Count(i => string.IsNullOrEmpty(i.Trim()));
Console.WriteLine(count); // Result will be 2 now which is correct
我会建议使用
Assert.IsTrue(!benefits.Any(P => string.IsNullOrEmpty(p.bCode.Trim()) )); //为获得更好效果
+1代替Any的快捷方式,而不是TrueForAll。 – x0n 2010-12-10 14:51:30
我在这里找不到'.Any'和'.TrueForAll'之间的任何区别,因为OP使用'List',都是+1。 –
2010-12-10 15:08:52