草庐IT

可变数组

全部标签

c# - 使用 json.net 反序列化时是否保留数组顺序?

当我使用json.net库将json对象反序列化为c#对象时,数组属性中元素的顺序是否会保持不变?例如:publicclassMySonsThreeFootRadius{publicBooleanIsMessy{get;set;}publicToy[]ToysThrownOnFloor{get;set;}}publicclassToy{publicStringName{get;set;}}{"IsMessy":true,"ToysThrownOnFloor":[{"Name":"Giraffe"},{"Name":"Ball"},{"Name":"Dad'sphone"}]}ToysT

c# - C# 中的 `params` 是否总是会导致在每次调用时分配一个新数组?

C#/.NET通过按引用传递Array类型来实现可变函数参数(与C/C++不同,C/C++只是将所有值直接放在堆栈上,无论好坏).在C#世界中,这有一个很好的优势,即允许您使用“原始”参数或可重用数组实例调用相同的函数:CultureInfoc=CultureInfo.InvariantCulture;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,3);Int32third=3;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,third);Object[]values=newObjec

c# - 包含方法的数组

我想知道您是否可以创建包含方法的数组或列表。我不想使用switch或大量if语句。谢谢 最佳答案 给你Listlist=newList();list.Add(()=>ClassA.MethodX(paramM));list.Add(()=>ClassB.MethodY(paramN,...));foreach(Actionainlist){a.Invoke();} 关于c#-包含方法的数组,我们在StackOverflow上找到一个类似的问题: https:/

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任何东西:publicstaticTAnyOne(thisT[]ra)whereT:class{intk=ra.Length;intr=Random.Range(0,k);returnra[r];}不幸的是,它不适用于List任何东西。这是适用于任何List的相同扩展名publicstaticTAnyOne(thisListlisty)whereT:class{intk=listy.Count;intr=Random.Range(0,k);returnlisty[r];}事实上,有没有一种方法可以泛化涵盖array的泛型?s和List是一次性的吗

C# Json.NET 将枚举标记为字符串数组

在.NET应用程序中,我有一组值存储为[Flags]枚举。我想将它们序列化为json,但我不想让结果成为整数,而是想为事件标志获取一个字符串数组。所以如果我有下面的代码[Flags]publicenumF{Val1=1,Val2=2,Val4=4,Val8=8}publicclassC{publicFFlags{get;set;}}stringSerialize(){returnJsonConvert.SerializeObject(newC{Flags=F.Val1|F.Val4});}我希望Serialize()方法返回:"{Flags:["Val1","Val4"]}"代替:"{

c# - 将 BitmapImage 转换为字节数组

我想在WindowsPhone7应用程序中将BitmapImage转换为ByteArray。所以我尝试了这个但是它抛出了运行时异常“无效指针异常”。任何人都可以解释为什么我正在尝试做的事情会引发异常。你能为此提供替代解决方案吗?publicstaticbyte[]ConvertToBytes(thisBitmapImagebitmapImage){byte[]data;//GetanImageStreamusing(MemoryStreamms=newMemoryStream()){WriteableBitmapbtmMap=newWriteableBitmap(bitmapImage

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# - 将字符串数组组合在一起

我希望将两个字符串数组的内容合并到一个新列表中,该列表将两者的内容连接在一起。string[]days={"Mon","Tue","Wed"};string[]months={"Jan","Feb","Mar"};//Iwanttheoutputtobealistwiththecontents//"MonJan","MonFeb","MonMar","TueJan","TueFeb"etc...我该怎么做?对于只有两个数组的情况,以下操作很简单:ListCombineWords(string[]wordsOne,string[]wordsTwo){varcombinedWords=ne

c# - 如何用另一个数组创建和初始化一个数组?

要用另一个数组创建和初始化一个数组,我目前这样做:voidFoo(int[]a){int[]b=newint[a.Length];for(inti=0;i在C#中是否有更短或更惯用的方法来执行此操作?如果这可以像在C++中一样在单个语句中完成,那就太好了:vectorb(a);如果这不能在一个语句中完成,我将接受我得到的:-) 最佳答案 我喜欢为此使用LINQ:int[]b=a.ToArray();也就是说,Array.Copy确实有更好的性能,如果这将在一个紧密的循环中使用,等等:int[]b=newint[a.Length];A