我无法理解为什么这个测试会因消息"Assert.AreEqual失败而失败.预期:<2>.实际:<1>."
[TestMethod]
public void Test()
{
char[] a1 = "abc".ToCharArray();
char[] a2 = {'a', 'b', 'c', ' ', ' '};
Assert.AreEqual(2, a2.Except(a1).Count());
}
Run Code Online (Sandbox Code Playgroud)
但以下内容将通过:
[TestMethod]
public void Test()
{
char[] a1 = "abc".ToCharArray();
char[] a2 = {'a', 'b', 'c', ' ', 'd', ' '};
Assert.AreEqual(2, a2.Except(a1).Count());
}
Run Code Online (Sandbox Code Playgroud)
小智 3
因为 except 发现两个序列的差异
http://msdn.microsoft.com/ru-ru/library/system.linq.enumerable. except.aspx
也许你需要这样的东西
var c=a2.Where(a=>a1.Contains(a)==false).Count();
Run Code Online (Sandbox Code Playgroud)