草庐IT

可变数组

全部标签

c# - 如何按类实例的属性值对包含类对象的数组进行排序?

这个问题在这里已经有了答案:关闭13年前。PossibleDuplicate:HowtosortanarrayofobjectbyaspecificfieldinC#?给定以下代码:MyClassmyClass;MyClassArray[]myClassArray=newMyClassArray[10];for(inti;i最终结果可能如下所示:myClassArray[0].Name//'John';myClassArray[1].Name//'Jess';myClassArray[2].Name//'James';您将如何根据myClass.Name属性按字母顺序对MyClassA

c# - 在 C# 中将二维数组归零的最快方法

我有一个二维数组,我想将其清除并重置为0值。我知道如何使用Array.Clear()清除向量(一维数组),但我不知道清除二维矩阵的最佳方法。doubleD=newdouble[10];Array.Clear(D,0,D.Length);如何清除一个2DNxM数组doubleD[,]=newdouble[N,M];感谢您提供的任何帮助。 最佳答案 Array.Clear也适用于多维数组:double[,]D=newdouble[M,N];Array.Clear(D,0,D.Length);注意,不需要自己计算长度,因为Length属性

c# - 不变的还是不可变的?

好吧,据我所知,不可变类型本质上是线程安全的,或者我在很多地方都读过,我想我明白为什么会这样。如果实例的内部状态在创建对象后无法修改,那么对实例本身的并发访问似乎没有问题。因此,我可以创建以下List:classImmutableList:IEnumerable{readonlyListinnerList;publicImmutableList(IEnumerablecollection){this.innerList=newList(collection);}publicImmutableList(){this.innerList=newList();}publicImmutable

c# - 使用预计算平移数组的快速正弦/余弦

我有以下代码使用预先计算的内存表执行Sin/Cos函数。在下面的例子中,表格有1024*128个项目,涵盖了从0到2pi的所有Sin/Cos值。我知道我可以使用Sin/Cos对称性并仅保留1/4的值,但在计算值时我会有更多的“如果”。privateconstdoublePI2=Math.PI*2.0;privateconstintTABLE_SIZE=1024*128;privateconstdoubleTABLE_SIZE_D=(double)TABLE_SIZE;privateconstdoubleFACTOR=TABLE_SIZE_D/PI2;privatestaticdoubl

c# - 如何将字符数组的一部分转换为字符串

我想将char数组的一部分转换为字符串。最好的方法是什么。我知道我可以对整个数组执行以下操作char[]chars={'a','','s','t','r','i','n','g'};strings=newstring(chars);但是例如元素2到4呢?我也知道我可以遍历数组并提取它们,但我想知道是否有更简洁的方法。 最佳答案 使用Stringconstructoroverload它采用一个字符数组、一个索引和一个长度:Stringtext=newString(chars,2,3);//Index2-4inclusive

C# 不可变整数

在Java中,字符串是不可变的。如果我们有一个字符串并对其进行更改,我们将获得由同一变量引用的新字符串:Stringstr="abc";str+="def";//nowstrreferstoanotherpieceintheheapcontaining"abcdef"//while"abc"isstillsomewhereintheheapuntiltakenbyGCIt'sbeensaidint和double在C#中是不可变的。这是否意味着当我们拥有int并稍后更改它时,我们会得到同一个变量“指向”的新int?同样的事情,但有堆栈。inti=1;i+=1;//samething:in

c# - C#中如何从数组中获取随机值

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Accessrandomiteminlist我有一个包含数字的数组,我想从这个数组中获取随机元素。例如:{0,1,4,6,8,2}。我想选择6并将这个数字放在另一个数组中,新数组的值为{6,....}。我使用random.next(0,array.length),但这给出了长度的随机数,我需要随机数组数。for(inti=0;i

c# - 可以快速调整大小的数组

我正在寻找一种数组数据类型,它可以轻松添加项目,而不会影响性能。System.Array-RedimPreserve将整个RAM从旧的复制到新的,速度与现有元素的数量一样慢System.Collections.ArrayList-够好吗?System.Collections.IList-够好吗? 最佳答案 简单总结几个数据结构:System.Collections.ArrayList:无类型数据结构已过时。请改用List(oft)。System.Collections.Generic.List(oft):这表示一个可调整大小的数组。

c# - 为什么我不能将数组初始值设定项与隐式类型变量一起使用?

为什么我不能对隐式类型变量使用数组初始值设定项?string[]words={"apple","strawberry","grape"};//legalstring[]words=newstring[]{"apple","strawberry","grape"};//legalvarwords=new[]{"apple","strawberry","grape"};//legalvarwords=newstring[]{"apple","strawberry","grape"};//legalvarwords={"apple","strawberry","grape","peach"}

c# - 为什么在 C# 中允许 "long"作为数组长度?

我想尝试分配一个40亿字节的数组,这是我的C#代码:longsize=4*1000;size*=1000;size*=1000;byte[]array=newbyte[size];此代码在包含new的行上因System.OverflowException而失败。好的,原来Length返回int,所以数组长度也限制在int可以存储的范围内。那为什么没有编译时错误,并且允许使用long作为分配时的数组元素个数? 最佳答案 因为规范在第7.6.10.4节中是这样说的:Eachexpressionintheexpressionlistmus