Tag: multidimensional array

Array.Copy是否适用于多维数组?

这段代码工作正常: var newArray = new Rectangle[newHeight, newWidth]; for (int x = 0; x < newWidth; x++) for (int y = 0; y = width) || (y >= height) ? Rectangle.Empty : tiles[y, x]; 但我没有太多运气用Array.Copy取代它。 基本上,如果resize的数组较大,则只需在边缘添加空白矩形。 如果它小,那么它应该切断边缘。 这样做时: Array.Copy(tiles, newArray, newWidth * newHeight); 它弄乱了arrays,它的所有内容都变得混乱,并且不保留它们的原始索引。 也许我只是有一个脑力计或其他什么?

使用未分配的局部变量’multidimension’

我从下面的代码中使用未分配的局部变量’multidimension’得到错误。 我试图将文本文件中返回的数据放在一个多维数组中,方法是将它们拆分并将每一行放入数组中 private void button1_Click_1(object sender, EventArgs e) { string[,] Lines; //string[][] StringArray = null; //to get the browsed file and get sure it is not curropted try { DialogResult result = openFileDialog1.ShowDialog(); if (result == DialogResult.OK) { using (StreamReader sr = new StreamReader(openFileDialog1.FileName)) { string[] data= null; string ReadFromReadLine; while ((ReadFromReadLine = sr.ReadLine()) != […]

在LINQ中选择一个多维数组

我有一个任务,我需要将DataTable转换为二维数组。 只需循环遍历行和列就可以轻松完成(参见下面的示例)。 private static string[,] ToArray(DataTable table) { var array = new string[table.Rows.Count,table.Columns.Count]; for (int i = 0; i < table.Rows.Count; ++i) for (int j = 0; j < table.Columns.Count; ++j) array[i, j] = table.Rows[i][j].ToString(); return array; } 我真正想做的是在LINQ中使用select语句来生成该2D数组。 不幸的是,看起来在LINQ中没有办法选择多维数组。 是的,我知道我可以使用LINQ来选择锯齿状arrays,但这不是我想要的。 我的假设是正确的,还是有办法使用LINQ来选择多维数组?

为什么.net在初始化2d数组时没有分配内存?

var a = new double[7000,7000]; FillValue(a,3); 似乎.Net在执行第一行后实际上并没有为a分配任何内存。 只有在运行FillValue调用时才会逐渐占用内存。 (约400MB) 任何人都可以向我提供有关它的更多细节吗? 在默认初始化之后,我认为a填充为0,怎么可能根本没有内存?

以矩阵格式打印2Darrays

我有一个2D数组如下: long[,] arr = new long[4, 4] {{ 0, 0, 0, 0 }, { 1, 1, 1, 1 }, { 0, 0, 0, 0 }, { 1, 1, 1, 1 }}; 我想以矩阵格式打印这个数组的值,如: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 我怎样才能做到这一点?

class级列表在控制台中作为class级名称保持打印?

好吧,也许我只是累了或者其他什么,但我似乎无法弄清楚为什么会这样。 对于我拥有的数据库中的数据点,每天都会调用以下代码。 当我打印到控制台进行调试时,它只是打印出来: NamespaceName.SharePrices 不知道发生了什么。 public void OnData(TradeBars data) { decimal price = data[“IBM”].Price; DateTime today = data[“IBM”].Time; //————–Below works fine. if (today.Date >= nextTradeDate.Date) { MarketOnOpenOrder(“IBM”, 50); Debug(“Purchased Stock”); nextTradeDate = today.AddDays(1); MarketOnOpenOrder(“IBM”, -25); } var derpList = new SharePrices { theDate = today, sharePrice = price }; List newList = new List(); newList.Add(derpList); […]

具有负索引的数组

我有一个数组,我用它来存储我正在进行的游戏的地图数据。 MyMapType[,,] map; 我使用固定数组而不是Collection的原因是因为固定数组的工作速度要快得多。 现在我的问题是,我想支持游戏中的负z级别。 所以我希望能够访问负面索引。 如果这是不可能的,我想到了一对其他的解决方案。 我认为可能的解决方案是将地面级别作为一些任意数字(比如10),任何小于10的都可以被认为是负面的。 但如果它不使用,这不会使数组大10倍吗? 我考虑的另一个解决方案是“滚动我自己的”,你有一个2D数组的字典,其中Z级保持在List中作为索引。 但这是更多的工作,我不确定它是否缓慢。 总结一下 – 创建支持负索引的数组的任何方式? 如果没有 – 是否有一种“模仿”这种行为的干净方式,而不会牺牲太多的CPU时间或RAM – 注意这些游戏地图可能会变得很大并且需要不断访问。

如何通过LINQ搜索2D数组?

我有一个像这样的2D数组: string[,] ClassNames = { {“A”,”Red”}, {“B”,”Blue”}, {“C”,”Pink”}, {“D”,”Green”}, {“X”,”Black”}, }; 我通过for语句在第 1列中搜索ClassName ,并在第2列中返回ColorName ,如下所示: string className = “A”; string color = “Black”; for (int i = 0; i <= ClassNames.GetUpperBound(0); i++) { if (ClassNames[i, 0] == className) { color = ClassNames[i, 1]; Response.Write(color); break; } } 我想使用LINQ而不是for语句来获取className的颜色 。 如何将上面的语句转换为LINQ。

如何从多维数组中获取维(切片)

我试图找出如何从多维数组中获取单个维度(为了论证,让我们说它是2D),我有一个多维数组: double[,] d = new double[,] { { 1, 2, 3, 4, 5 }, { 5, 4, 3, 2, 1 } }; 如果它是一个锯齿状的数组,我只需要调用d[0] ,这会给我一个{1, 2, 3, 4, 5}的数组,有没有办法可以用2D数组实现相同的效果?

使用Linq和2D数组,选择未找到

我想使用Linq查询2D数组,但是我收到一个错误: 找不到源类型’SimpleGame.ILandscape [ , ]’的查询模式的实现。 找不到“选择”。 您是否缺少对’System.Core.dll’的引用或’System.Linq’的using指令? 代码如下: var doors = from landscape in this.map select landscape; 我已经检查过我是否包含了参考System.Core并使用了System.Linq 。 谁能给出一些可能的原因?