草庐IT

c# - 删除 int 数组列表中的重复项

有一个像这样的int数组列表:ListintArrList=newList();intArrList.Add(newint[3]{0,0,0});intArrList.Add(newint[5]{20,30,10,4,6});//thisintArrList.Add(newint[3]{1,2,5});intArrList.Add(newint[5]{20,30,10,4,6});//thisintArrList.Add(newint[3]{12,22,54});intArrList.Add(newint[5]{1,2,6,7,8});intArrList.Add(newint[4]{

c# - 为什么 IsAssignableFrom() 不适用于 int 和 double?

这是错误的:typeof(double).IsAssignableFrom(typeof(int))这是错误的:typeof(int).IsAssignableFrom(typeof(double))但这行得通:doublea=1.0;intb=1;a=b;很明显double是可以从int赋值,但是框架IsAssignableFrom()弄错了。为什么?或者这是.NET中的一个错误,是由int和double的特殊性质引起的,它们没有继承关系但可以分配(单向)? 最佳答案 C#提供从int到double的隐式转换。这是语言的决定,不是

c# - 为什么 Convert.ToInt32(Int32) 存在?

有一个Convert.ToInt32的重载,它以Int32作为参数。但即使是documentationsaysthatbasicallynothinghappens并且该方法返回其输入。问题是为什么我们有这样的重载?有什么目的吗?谁能给我一个使用这种方法的例子吗?我的想法:我认为我们可能拥有它,因为有一个重载需要Object.因此我们想要消除拳击等等。但我不确定。 最佳答案 我的想法:用于代码生成:尤其是在.NET2.0中,很多代码如生成了类型数据集。像Convert.ToInt32(Int32)这样的重载简化了代码生成器,但不会影

c# - Int32.Parse 与 Single.Parse - ("1,234") 和 ("1,2,3,4")。为什么 int 和浮点类型以不同方式解析分隔符?

在C#中:这会抛出一个FormatException,这似乎不应该:Int32.Parse("1,234");这不是,这看起来很正常:Single.Parse("1,234");令人惊讶的是,这解析得很好:Single.Parse("1,2,3,4");//Returns1234我的本​​地文化是EN-US,所以,是默认的千位分隔符。主要问题:为什么不一致?另外:为什么Parse("1,2,3,4")有效?它似乎只是在解析之前删除了本地分隔符char的所有实例。我知道在正则表达式检查或类似的东西中会有额外的运行时开销,但是数字文字“1,2,3,4”什么时候不是拼写错误?相关:C#Dec

c# - Int32.Parse() VS Convert.ToInt32()?

intID1=Int32.Parse(myValue.ToString());intID2=Convert.ToInt32(myValue);哪个更好,为什么? 最佳答案 它们完全相同,只是Convert.ToInt32(null)返回0。Convert.ToInt32定义如下:publicstaticintToInt32(Stringvalue){if(value==null)return0;returnInt32.Parse(value,CultureInfo.CurrentCulture);}

c# - 在空 IEnumerable<int> 上为 FirstOrDefault() 返回 null?

假设我有以下片段:int?nullableId=GetNonNullableInts().FirstOrDefault();因为GetNonNullableInts()返回整数,FirstOrDefault将默认为0。有没有办法让整数列表中的FirstOrDefault在列表为空时返回null值? 最佳答案 int?nullableId=GetNonNullableInts().Cast().FirstOrDefault(); 关于c#-在空IEnumerable上为FirstOrDef

c# - 无法将类型 'System.Enum' 转换为 int

(好吧,我就在这里揭露我的无知,请温柔点)背景我有一个看起来(有点)像这样的方法:publicvoidAddLink(EnumenumVal){stringidentifier=m_EnumInterpreter(enumVal);AddLink(identifier);}EnumInterpreter是创建父类时传入的Func。我正在使用枚举,因为在这个级别上它“不关我的事”——我不在乎它是哪个具体的枚举。调用代码仅使用(生成的)枚举来避免使用魔法字符串。问题如果EnumInterpreter发回一个空字符串,我想用enumVal的实际值抛出一个异常。我以为我只能转换为int,但编译

c# - 从 int 继承的枚举

我在这段代码中到处都是:publicenumBlah:int{blah=0,blahblah=1}为什么要继承自int?有必要吗? 最佳答案 根据documentation:Everyenumerationtypehasanunderlyingtype,whichcanbeanyintegraltypeexceptchar.Thedefaultunderlyingtypeoftheenumerationelementsisint.所以,不,您不需要使用int。它适用于任何整数类型。如果您不指定任何内容,它将使用int作为默认值,并且

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

我在C#中有这个函数可以将小端字节数组转换为整数:intLE2INT(byte[]data){return(data[3]现在我想把它转换回小端..有点像byte[]INT2LE(intdata){//...}有什么想法吗?谢谢。 最佳答案 BitConverter类可以用于此,当然,它也可以用于小端和大端系统。当然,您必须跟踪数据的字节顺序。例如,对于通信,这将在您的协议(protocol)中定义。然后您可以使用BitConverter类将数据类型转换为字节数组,反之亦然,然后使用IsLittleEndian标志查看是否需要转换是

c# - 运算符 ">"不能应用于类型 'ulong' 和 'int'

我很想知道为什么C#编译器只给我第二个if语句的错误消息。enumPermissions:ulong{ViewListItems=1L,}publicvoidMethod(){intmask=138612833;intcompare=32;if(mask>0&(ulong)Permissions.ViewListItems>32){//Works}if(mask>0&(ulong)Permissions.ViewListItems>compare){//Operator'>'cannotbeappliedtooperandsoftype'ulong'and'int'}}