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