当我使用时someList.Where(t => t.isTrue = true)没有任何反应.但是,当我使用下面给出的代码时,
if(someList.Where(t => t.isTrue = true).Count() > 0)
return;
Run Code Online (Sandbox Code Playgroud)
列表中的所有项都设置为true.为什么会这样?
编辑:我不是要分配或比较任何东西.我很好奇为什么会这样if.
我正在为我的代码编写单元测试.并使用'Microsoft.VisualStudio.TestTools'.对于包含消息框的函数,我不想在运行"单元测试"时弹出消息.我可以通过使用以下代码来做到这一点,
public static class UnitTestDetector
{
static UnitTestDetector()
{
string testAssemblyName = "Microsoft.VisualStudio.QualityTools.UnitTestFramework";
UnitTestDetector.IsInUnitTest = AppDomain.CurrentDomain.GetAssemblies()
.Any(a => a.FullName.StartsWith(testAssemblyName));
}
public static bool IsInUnitTest { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
但是对于这个解决方案,我必须在实际函数中使用'IsInUnitTest'来禁用消息框.还有其他解决方案吗?