草庐IT

可变数组

全部标签

c# - 是否有一个 c# 库提供像 numpy 这样的数组操作

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我开始使用Numpy并且非常喜欢它的数组处理功能。是否有一些我可以在C#中使用的库提供与数组类似的功能。我最喜欢的功能是:从一个数组创建另一个数组n维数组的简单/简单迭代数组切片

c# - 如何使用 xsd.exe 在 C# 中生成列表而不是数组

我有一个XML架构.xsd文件,并使用xsd.exe工具生成包含所有C#类的文件。如果我在XML标记中有一个元素序列,那将在C#中用数组表示。失败是显而易见的。如何生成列表而不是数组?我想使用列表而不是类中的固定大小数组。Book[]books=newBook[someFixSize];Listbooks=newList();我看到了一些关于此的较旧(非常老)的问题,但没有一个提供令人满意的解决方案:/这是最新的有用提示:http://www.stefanbader.ch/xsdcsarr2l-exe-refactor-xsd-array-to-list/

C# 可变数组项?

我需要一个包含可变项的数组,但找不到实现该操作的方法。privatevolatileT[]_arr;这意味着_arr引用是可变的,但是它不保证_arr对象本身内部的项目的任何内容。有什么方法可以将_arr的项目标记为易变的吗?谢谢。编辑:根据binarycoder的答案构建了以下代码。这段代码使用起来线程安全吗?publicclassVolatileArray{privateT[]_arr;publicVolatileArray(intlength){_arr=newT[length];}publicVolatileArray(T[]arr){_arr=arr;}publicTthis

c# - .NET JIT 编译器可变优化

https://msdn.microsoft.com/en-us/magazine/jj883956.aspxConsiderthepollinglooppattern:privatebool_flag=true;publicvoidRun(){//Set_flagtofalseonanotherthreadnewThread(()=>{_flag=false;}).Start();//Pollthe_flagfielduntilitissettofalsewhile(_flag);//Theloopmightneverterminate!}Inthiscase,the.NET4.5J

c# - 为什么 List<T> 出现 "Index was out of range"异常而不是数组?

当我初始化数组并使用索引器访问元素时,效果很好:object[]temp=newobject[5];temp[0]="bar";现在我希望同样适用于List,假设您可以通过将容量传递给构造函数来初始化它:Listtemp=newList(5);temp[0]="bar";然而,最后一行抛出以下异常:Indexwasoutofrange.Mustbenon-negativeandlessthanthesizeofthecollection为什么List会发生这种情况类型,但不是数组?由于数组只是CLR集合的较低级别抽象,那么为什么会出现此异常?原创question通过AwaisMahmo

c# - 从数组中获取字符串或在单行中设置默认值

所以我们有??来解析当左手为null时的右手值。string[]的等价物是什么。例如stringvalue="One-Two"stringfirstValue=value.Split('-')[0]??string.Empty;stringsecondValue=value.Split('-')[1]??string.Empty;如果我们尝试获取第三个索引或者如果stringvalue="One",上述示例仍然会崩溃。因为它不是null但IndexOutOfRangeException被抛出。https://learn.microsoft.com/en-us/dotnet/api/sy

c# 将 1 维数组分配给 2 维数组语法

我想做这样的事情:object[]rowOfObjects=GetRow();//filledsomewhereelseobject[,]tableOfObjects=newobject[10,10];tableOfObjects[0]=rowOfObjects;这是否可能,语法是什么?或者我需要这样做:for(inti=0;i并使用循环填充二维数组行?谢谢 最佳答案 不,如果您使用的是二维数组,那是不可能的。您必须复制每一项。如果你使用交错数组,它工作得很好://createarrayofarraysobject[][]table

c# - 为什么我不能使用与数组声明分开的数组初始化语法?

我可以用一个整数来做到这一点:inta;a=5;但是我不能用一个整数数组来做到这一点:int[]a;a={1,2,3,4,5};为什么不呢?澄清一下,我不是在寻找正确的语法。我可以查一下。我知道这行得通:int[]a={1,2,3,4,5};相当于:inta=5;我想了解的是,为什么数组的代码会失败?代码未能被识别为有效的原因是什么。 最佳答案 存在差异的原因是Microsoft的人员决定在同一语句中声明和初始化数组时简化语法,但没有添加所需语法允许您稍后为其分配一个新数组。这就是它起作用的原因:int[]a={1,2,3,4,5}

c# - 具有相同元素类型和等级的数组类型不相等

非常简单:varequal1=typeof(object[])==typeof(object).MakeArrayType();varequal2=typeof(object[])==typeof(object).MakeArrayType(1);varequal3=typeof(object[,])==typeof(object).MakeArrayType(2);假设所有三个都应该为真,但事实证明equal2为false-这实际上没有意义,因为前两个MakeArrayType调用是等效的,生成的数组类型相同。TheonlydifferenceIcanactuallydiscerni

c# - 从 Excel 中读取(范围到多维数组)C#

我如何从Excel工作表中读取并将标记的选择(区域)加载到多维数组中?Excel中的一列本身可以是一个多维数组,因为它包含多个值。现在的想法(不确定这有多好或多坏)是在所有Excel.Area(选定字段)中执行一个for循环,并将该字段的内容添加到多维数组中。由于多维数组是object[,]类型,因此是非泛型的,因此没有方便的add()方法。所有这些都需要手动完成。不知道这种方法是否可行,或者是否可以更有效地完成? 最佳答案 您可以将Range的值读取为数组:using(MSExcel.Applicationapp=MSExcel.