草庐IT

C# 反射 : how to get an array values & length?

FieldInfo[]fields=typeof(MyDictionary).GetFields();MyDictionary是一个静态类,所有字段都是字符串数组。如何获取每个数组的长度值,然后遍历所有元素?我尝试了这样的类型转换:fieldasArray但它会导致错误Cannotconverttype'System.Reflection.FieldInfo'to'System.Array'viaareferenceconversion,boxingconversion,unboxingconversion,wrappingconversion,ornulltypeconversion

c# - 检查数字数组是否连续的功能方法

如果每个成功的元素都具有前一个元素的值+1,那么假设一个数组是连续的。假设我有一个数字数组,例如{5,6,7,8}(顺序)或{1,2,5}(非顺序)。是否有一个很好的功能方法来检查数组是否是连续的?我可以使用以下代码来完成:boolIsSequential(int[]array){for(inti=1;i我正在尝试确定一手扑克牌是否顺子。 最佳答案 试试这个:boolIsSequential(int[]array){returnarray.Zip(array.Skip(1),(a,b)=>(a+1)==b).All(x=>x);}

c# - Array 中会发生装箱和拆箱吗?

我是编程新手,根据MSDN,Boxingistheprocessofconvertingavaluetypetothetypeobjectortoanyinterfacetypeimplementedbythisvaluetype.WhentheCLRboxesavaluetype,itwrapsthevalueinsideaSystem.Objectandstoresitonthemanagedheap.Unboxingextractsthevaluetypefromtheobject.Boxingisimplicit;unboxingisexplicit.我知道我们可以在数组列表中

c# - C# 中的快速数组移位实现?

我需要将数组向右和向左移动N个位置。从我移动到的一侧弹出的项目必须在另一侧返回。右移13:[0,1,2,3,4,5,6,7,8,9]->[7,8,9,0,1,2,3,4,5,6]左移15:[0,1,2,3,4,5,6,7,8,9]->[5,6,7,8,9,0,1,2,3,4]此操作将发生数百万次并且必须非常快。我当前的实现如下。请查看并建议是否需要进行一些优化。if(shift>0){intoffset=array.Length%shift;if(offset>0){byte[]temp=newbyte[offset];if(!right){Array.Copy(array,temp,

c# - 不使用 Array.Reverse() 反转数组

如何在不使用Array.Reverse()方法的情况下反转数组(在C#中)?例如,int[]arr={1,3,4,9,8};//somecodehereConsole.WriteLine(string.Join(",",arr));应该导致8,9,4,3,1我得到这个作为面试任务。 最佳答案 要替换问题中的//somecodehere的代码是:for(inti=0;i您应该只遍历数组的前半部分(arr.Length/2)。如果您遍历整个数组(arr.Length),它将反转两次,产生与开始前相同的元素顺序。

c# - 按值和按引用传递数组

这些是我正在阅读的一本c#书中的示例,只是有点难以理解这个示例实际在做什么,希望得到解释以帮助我进一步理解这里发生的事情。//createsandinitialzesfirstArrayint[]firstArray={1,2,3};//CopythereferenceinvariablefirstArrayandassignittofirstarraycopyint[]firstArrayCopy=firstArray;Console.WriteLine("TestpassingfirstArrayreferencebyvalue");Console.Write("\nContent

c# - 随机播放列表算法

我需要以随机顺序创建一个范围内(例如从x到y)的数字列表,以便每个顺序都有均等的机会。我用C#编写的音乐播放器需要这个,以随机顺序创建播放列表。有什么想法吗?谢谢。编辑:我对更改原始列表不感兴趣,只是从随机顺序的范围中选取随机索引,以便每个顺序都有均等的机会。这是我到目前为止写的内容:publicstaticIEnumerableRandomIndexes(intcount){if(count>0){int[]indexes=newint[count];intindexesCountMinus1=count-1;for(inti=0;i0){intcurrIndex=random.Ne

c# - 在 C# 中从锯齿状数组转换为双指针

这里有一个简单的问题:有什么方法可以将锯齿状数组转换为双指针?例如将double[][]转换为double**不幸的是,这不能仅通过转换来完成(因为它可以在普通的旧C中实现)。使用fixed语句似乎也不能解决问题。在C#中是否有任何(最好尽可能有效)方法来完成此操作?我怀疑解决方案可能根本不是很明显,但我仍然希望有一个简单明了的解决方案。 最佳答案 一点安全。正如对第一个解决方案的评论中提到的,嵌套数组可以移动,因此它们也应该被固定。unsafe{double[][]array=newdouble[3][];array[0]=new

c# - 如何实现 ICollection.CopyTo 方法?

我正在编写一个实现ICollection的类和ICollection接口(interface)。MSDN说这些有点不同。ICollection.CopyTo需要T[]参数,而ICollection.CopyTo需要System.Array争论。抛出的异常也有区别。这是我对泛型方法的实现(我相信它功能齐全):voidICollection.CopyTo(PlcParameter[]array,intarrayIndex){if(array==null)thrownewArgumentNullException("array");if(arrayIndex但是,该方法的非泛型版本让我有点困

c# - 使用 Json.Net 反序列化时出现错误 "Cannot deserialize the current JSON array"

我有一个字符串:[{"key":"key1","value":"{'Time':'15:18:42','Data':'15:18:42'}","duration":5},{"key":"key1","value":"{'Time':'15:18:42','Data':'15:18:42'}","duration":5}]我的模型类:publicclassCPacket{publicstringkey{get;set;}publicstringvalue{get;set;}publicintduration{get;set;}}我使用Json.Net,我想将下面的字符串转换为Json对象