当前位置: 首页 > 编程语言 > C#

使用LINQWayShare初始化锯齿状数组

时间:2023-04-11 11:34:40 C#

使用LINQWayShare初始化锯齿状数组[];for(inti=0;inewdouble[colCount]).ToArray();在调用Repeat之前,您所拥有的不会起作用。您需要可以重复创建数组的东西。这可以使用Enumerable.Range方法生成一个范围,然后执行一个Select操作来实现,该操作将范围的每个元素映射到一个新的数组实例(如DavidB的回答)。但是,我认为您正在尝试使用LINQ,在这种情况下这不是正确的做法。在LINQ解决方案之前你拥有的是好的。当然,如果你想要类似于Enumerable.Repeat的LINQ风格的方法,你可以编写自己的扩展方法来生成一个新项,例如:publicstaticIEnumerableRepeat(Funcgenerator,intcount){for(inti=0;i然后你可以这样调用它:varresult=Repeat(()=>newdouble[rowCount],columnCount).ToArray();行为是正确的-Repeat()返回一个包含多次提供的对象double[][]myArr=Enumerable.Repeat(0,rowCount).Select(i=>newdouble[colCount]).ToArray();你不能用Repeat方法做到这一点一点:element参数只被评估一次,所以它总是重复同一个实例。相反,你可以创建一个方法来做你想做的事,它将采用lambda而不是值:publicstaticIEnumerableSequence(Funcgenerator,intcount){for(inti=0;inewdouble[colCount],rowCount).ToArray();我刚写了这个函数...publicstaticT[][]GetMatrix(intm,intn){varv=newT[m][];for(inti=0;i似乎工作。用法:float[][]vertices=GetMatrix(8,3);怎么样varmyArr=newdouble[rowCount,colCount];或者doublemyArr=newdouble[rowCount,colCount];参考:http://msdn.microsoft.com/en-us/library/aa691346(v=vs.71).aspx以上是C#学习教程:InitializetheJaggedarraywithLINQ全部内容分享,如果有对大家有用,需要了解更多C#学习教程,希望大家多多关注—本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:

最新推荐
猜你喜欢