草庐IT

EXCEPTION_INT_DIVIDE_BY_ZERO

全部标签

c# - C# 3.5 中的 List<int> 初始化

我可以初始化一个ListlikenewList{1,2,3,4,5};然而List没有接受单个参数的构造函数。所以我试图通过调试器运行它,它似乎在调用Add方法。那么编译器如何知道调用哪个方法来添加每个单独的元素。这可能是个愚蠢的问题,但我有点困惑。谢谢 最佳答案 这是一个集合初始化器,一个C#3.0languagefeature.它需要:该类型必须实现IEnumerable(尽管它从未用于初始化)类型必须至少有一个Add方法它只是为每个术语调用Add方法。如果Add接受多个值,例如字典,您也可以使用元组。然后每一项都是{key,v

c# - 为什么 List<T>.Sort 使用 Comparer<int>.Default 比等效的自定义比较器快两倍以上?

结果使用1000万个随机列表ints(每次相同的种子,重复10次的平均值):listCopy.Sort(Comparer.Default)需要314毫秒。使用sealedclassIntComparer:IComparer{publicintCompare(intx,inty){returnxlistCopy.Sort(newIntComparer())需要716毫秒。一些变化:使用structIntComparer而不是sealedclass:771毫秒使用publicintCompare(intx,inty){returnx.CompareTo(y);}:809毫秒评论Compar

c# - 在匿名类型的属性名称中使用异常(exception)字符(减号)

问题我正在尝试使用名为data-maxchars的属性声明一个匿名类型.因为减号是一个运算符,它将我想要的属性名称降级(?)为一个操作,我得到一个编译错误:Invalidanonymoustypememberdeclarator.我知道我可以使用@转义保留字,但我不知道是否有任何方法可以转义减号。objectattributes=(object)new{@class="foo"}//OK起源匿名类型作为object传递TextAreaExtensions.TextArea的参数:.这会生成一个具有传递属性的输入。我想使用JS渐进增强来限制用户可以插入的字符数。所以我正在使用data-我

c# - 在 WPF 中获取 "<Property Name> was already registered by "<控件名称>"错误

我在WPF中有一个用户控件,它绑定(bind)到一个依赖属性。当我尝试编译应用程序时,出现“属性名称”已由“控件名称”注册的错误,设计器显示“无法创建“用户控件”的实例”错误。这是我的简单控件的样子:ExampleUserControl.xaml:ExampleUserControl.xaml.cs:publicpartialclassExampleUserControl:UserControl{publicDependencyPropertySomeStringValueProperty=DependencyProperty.Register("SomeStringValue",ty

c# - LINQ Order By Descending with Null Values on Bottom

这个问题在这里已经有了答案:LINQorderbynullcolumnwhereorderisascendingandnullsshouldbelast(10个答案)关闭8年前。我有这样的表达:troubletickets=db.ServiceTickets.Include(t=>t.Company).Include(t=>t.UserProfile);troubletickets.OrderByDescending(t=>t.UserProfile!=null?t.UserProfile.FirstName:"ZZZ");我必须检查UserProfile是否为null,因为如果不这样

c# - 使用 Interlocked.Exchange 更新引用和 Int32

众所周知,引用在32位处理器中占用4字节内存,在64位处理器中占用8字节内存。因此,处理器保证以机器的自然字大小为增量对内存进行单次读取和写入将以原子方式执行。另一方面,Interlocked类中有2个方法:publicstaticintExchange(refintlocation1,intvalue)和publicstaticTExchange(refTlocation1,Tvalue)whereT:class那么,问题是为什么Int32和引用类型需要Interlocked.Exchange?因为它是原子的,所以仅仅使用简单的赋值不能安全地完成吗? 最佳

c# - .Net Dictionary<int,int> 在大约 6,000,000 个条目处出现内存不足异常

我正在使用Dictionary存储图像中颜色出现的频率,其中键是颜色(作为int),值是颜色在图像中出现的次数。当我处理更大/更彩色的图像时,这本词典会变得非常大。我在大约6,000,000个条目时遇到内存不足异常。这是在32位模式下运行时的预期容量吗?如果是这样,我能做些什么吗?有哪些替代方法可以跟踪这些不会耗尽内存的数据?作为引用,下面是循环遍历位图中的像素并将频率保存在Dictionary中的代码:Bitmapb;//=something...Dictionarycount=newDictionary();System.Drawing.Colorcolor;for(inti=0;

c# - 使用 LINQ 将 Dictionary<String,Int> 转换为 Dictionary<String,SomeEnum>?

我正试图找到一个LINQoneliner,它接受一个Dictionary并返回一个Dictionary....这可能不可能,但会很好。有什么建议吗?编辑:ToDictionary()是显而易见的选择,但你们中有人实际尝试过吗?在Dictionary上它的工作方式与在Enumerable上的工作方式不同...您不能将键和值传递给它。编辑#2:哦,我在这行上面有一个错字,导致编译器搞砸了。一切顺利。 最佳答案 它通过简单的转换直接工作。Dictionaryinput=newDictionary();//TransforminputDic

c# - 将列表<int> 转换为连接的整数字符串?

我有一个值为3,99,6的int数组。如何使用linq将数组转换为字符串3,99,6? 最佳答案 int[]list=new[]{3,99,6};strings=string.Join(",",list.Select(x=>x.ToString()).ToArray());编辑,C#4.0在C#4.0中,还有一个重载string.Join,最终允许传递一个IEnumerable或IEnumerable直接地。无需创建数组,也无需调用ToString(),它被隐式调用:strings=string.Join(",",list);对字符

c# - 如何将字节数组转换为 int 数组?

如何将byte数组转换为int数组?我有一个包含144个项目的字节数组,由于我缺乏经验,我尝试过的方法效率很低。如果之前有人回答过这个问题,我很抱歉,但我在任何地方都找不到好的答案。 最佳答案 简单://WhereyourBytesisaninitializedbytearray.int[]bytesAsInts=yourBytes.Select(x=>(int)x).ToArray();确保包含System.Linq和using声明:usingSystem.Linq;如果LINQ不是您的菜,您可以改用它:int[]bytesAsI