c# – 在x64平台上Math.Round的性能显着下降

当使用Math.Round转换double为int时,我注意到了一个非常显着的的性能下降,而x64与x86相比.我在Corei73770K上的64位Windows上进行了测试.有人可以重现吗?有没有什么好的理由呢?也许有些奇怪的边界条件?仅供参考,我将Math.Round与2个近似值进行了比较:条件转换和6755399441055744技巧.运行时间为:以下是基准代码:更新2016-11-23:安德烈·阿金欣在Andreynet/coreclrrepo上贴了一个question之后,被添加到了1.2.0的

c# – MSTest – 如何初始化一个UnitTest项目的log4net?

我有一个用于测试ASP.NETMVC项目的VisualStudio单元测试项目.将Assembly-levellog4net.Config.XmlConfigurator属性添加到AssemblyInfo.cs不起作用,而其他人则发现他们必须直接调用log4net.Config.XmlConfigurator.Configure();问题是,如何进行单元测试?在类方法上使用Microsoft.Vi

c# – 如何在字典中插入第一个元素?

我有一个字典结构,里面有多个键值对.我的字典用作一些控件的数据源.在控件的下拉菜单中,我看到的项目是这样的:订单与我的字典相同.我知道Dictionary不像arrayList–你可以得到索引等.我不能使用sortedDictionary.现在我需要在我的程序的某个点添加一个键值对这个字典,我希望它与我这样做的效果相同:如果我这样做,我知道newKey将显示在我的控制作为第一个元素.我有一个想法来

c# – 除了最后一个字符串之外,添加换行符的最佳方式

我正在寻找最好的/最干净的方式来迭代字符串列表,然后创建一个单独的字符串,用换行符分隔.像这样:我在这里写了两个循环,它在字符串的末尾有一个换行符,另一个没有.那个人似乎并不像我这样“干净”.我会认为会有一个更简单的方法来做到这一点,使得逻辑类似于在字符串末尾有一个新行的示例中的简单.也许这是一厢情愿的想法,但是我认为这是一个很普遍的事情,需要更好的方式来完成我的目标.解决方法您可以使用String.Join.

无法在C#中的列表框中执行键值

我正在使用winforms编写一个C#应用程序.我有一个列表框.我从xml文件,用户名和他们的ID获取我的数据.我想要在列表框中显示名称,当我选择其中一个时,我想使用selectedValue属性获取他/她的id.但是我不能这样做.我尝试了keyvaluePair,它在列表框中显示“[username,id]”,这是不好的.我怎样才能在c#中模拟htmlselect?我希望名称显示在列表框中,但希望在后端获取id.谢谢…解决方法使用c#dictionary,编辑:

c# – IEnumerable.Select with index

解决方法我不确定你正在寻找什么样的指数,但如果它只是一组连续的数字那么你很幸运.有一个Select重载就是这样:它需要一个带有两个参数的委托–项目及其索引.

c# – WebProxy错误:需要代理验证

我使用以下代码来访问互联网上的html数据:但是出现以下错误:“需要代理验证”.我不能使用默认代理,因为我的代码从没有默认代理设置的特殊帐户下的Windows服务运行.所以,我想标明我的代码中的所有代理设置.请告诉我如何解决这个错误.解决方法你必须设置WebClient.Proxy属性..

c# – 将LINQ序列中的项发送到返回void的方法

当我处理LINQ序列时,我想将每个项目发送到一个返回void的方法,避免了foreach循环.但是,我没有找到一个优雅的方式来做到这一点.今天我写了下面的代码:你可以看到,我写了一个只返回true的lambda函数,我意识到Select方法将返回一个布尔序列,我只是忽略该序列.然而,这似乎有点无聊和…或者我只是错误地使用LINQ?