用foreach遍历一个二维数组
我试图通过以下语句迭代一个数组:foreach(int [] arr2d中的arr).它在Java中的工作原理类似.为什么它在C#中不起作用?谢谢! public static int[] RowSums(int[,] arr2D) { int[] sums = new int[arr2D.Length]; int rowCount = 0; foreach (int[] arr in arr2D) { sums[rowSums] = ArraySum(arr); rowSums++; } return sums; } 解决方案 int [,]不是int []的ienumerable,而是int.因此,您不能在foreach环中使用它.另外,您必须使用 array.getLength()找出每一行元素数量的方法. public static int[] RowSums(int[,] arr2D) { int num
8 2024-04-26
编程技术问答社区
如何在C#数组中确定一排有5个相同底色的标签?
我创建了一个标签的二维数组[19,19].单击一个用户,根据迭代的不同,用户将标签的颜色更改为黑色或白色.当有五个相同颜色的标签水平排列时,我希望一个消息框弹出.这是在没有递归的情况下完成的.任何帮助将不胜感激. public partial class Form1 : Form { int labelCount = 0; int iteration = 0; public Label[,] board = new Label[19,19]; const int WinLength = 5; const int BoardWidth = 19; const int BoardHeight = 19; gamePlay obj = new gamePlay(); public Form1() { InitializeComponent(); } priva
12 2024-04-26
编程技术问答社区
二维阵列中元素的反向顺序
昨天看到了Similiar(不相同)的问题,我意识到我也不知道. 可以说,我们有一个2维的" int[,]"数组,带有这样的元素: 1,2,3,4,5 5,4,3,2,1 我想在两个 dimensions 行中进行反向元素顺序: 5,4,3,2,1 1,2,3,4,5 或仅一根: 5,4,3,2,1 5,4,3,2,1 我能想到的唯一方法是手动进行陈述.还有其他想法吗? 解决方案 您可以尝试使用array.reverse. 更新: 如果您可以使用数组数组而不是二维数组: var array = new int[2][]; array[0] = new int[]{1, 2, 3, 4, 5}; array[1] = new int[]{5, 4, 3, 2, 1}; for (int i = 0; i
2 2024-04-26
编程技术问答社区
C# 循环数组对象多维从ajax发布
我有多维数组对象如何在C#中循环所有值? 在C# 中 charge[0]{[ChargeMultiId, da95aad9-0cdc-40bb-a5db-3bc0933dea4a ]} charge[1]{[ChargeMultiNoteslist, Testing notes 29/04/2016 ]} charge[22]{[Diagnosis, : ["1", "2", "3", "4", "5", "6", "7", "8", "9"]} ajax charge = "ChargeMultiId": "da95aad9-0cdc-40bb-a5db-3bc0933dea4a", "ChargeMultiNoteslist": "Testing notes 29/04/2016", "ChargeMultiCode": "99238", "ChargeMultiCodeName": "HOSP DSCHRG D MGMT 30
6 2024-04-26
编程技术问答社区
我如何将这段手工代码转换成使用Enumerable.Range来初始化我的多维属性?
此问题与此处的答案中的代码示例有关(/a>). 我现在有这个构造函数: public List[] StudentItems { get; set; } public MSAHistoryWeek() { TalkItems = Enumerable.Range(1, 6).Select(x => new MSAHistoryItemTalk()).ToList(); Teaching = Enumerable.Range(1, 3).Select(x => string.Empty).ToList(); StudentItemStudyNumbers = Enumerable.Range(1, 5).Select(x => string.Empty).ToList(); StudentItemDescriptions = Enumerable.Range(1, 5).Select(x => str
4 2024-04-26
编程技术问答社区
如何检查多维数组行是否包含非零值
只是关于C#中的多维阵列的一个简短问题. 如何检查多维数组的一行是否包含非零值? 在MATLAB中,"任何" - 命令完全可以做我需要的. 最后,我需要将请求放在一段时间的情况下.均值在matlab中:while(any(array [1,2,:])) - >>这是指:(任何属于行的人零零)... 我已经尝试了array.exists()或array.find(),但似乎仅适用于一维数组. 谢谢 解决方案 您有几个选项 myMultiArray.Any(row => row.Contains(Something)); 或作为Sriram Sakthivel建议 foreach(var row in myMultiArray) if(row.Contains(Something) //Found it! foreach(var row in myMultiArray) if(row.IndexOf(Somet
10 2024-04-26
编程技术问答社区
从控制台应用程序中显示一个2D数据阵列
我知道已经创建和关闭的已经有几个线程(例如二维整数阵列到datagridview ) 我的问题是,由于我只使用控制台应用程序,因此我不知道要应用代码需要做什么. 到现在为止,我已经拖放了一个新的datagridview并选择了program.cs(我的主要是)作为来源.现在,当我从program.cs中的上述链接中应用代码时,VisualStudio说datagridview1"在当前上下文中不存在".当我尝试事先声明它时,我会发现找不到类型/名称空间.有什么想法吗? 解决方案 关于您遇到的错误:您需要做的就是添加名称空间:using System.Windows.Forms;以及对其的引用!这对于控制台应用程序很好.当然,它永远不会出现,但除了您可以利用它的能力外. ,但真正的问题是:您想实现什么,为什么要坚持使用控制台应用程序? 这并不是说您可能没有充分的理由!例如,有时需要在没有显示屏幕的情况下运行服务应用程序.这仍然可以从DataGridVie
0 2024-04-25
编程技术问答社区
阵列的磁盘存储等
有人有在磁盘上存储数据的经验吗?我拥有的是一个可以进行计算的内存建模应用程序.基本上,数据存储为对象列表,它们具有嵌套键值集合,例如字典>. . 现在,我将SQL-Server用作持久层,但我使用的功能很少.因此,我认为我可以编写/阅读数据以减少依赖关系并简化安装. 所以我写了一些例行程序,以大致以这种格式写下每个数组的磁盘,其中" objid"," type","有效"和" count"一词实际上不在文件中,它们是第一个,第2,第4个字节中的第4个int,然后来对. 52来自4 * 4 + 3 *(4 + 8). (int的4个字节为4个,为double) Bytes: 52 ObjId: 123 Valid: 234 Type: double Count: 3 1 .23 2 .34 3 .45 在现实生活中没有凹痕等,它们都是长流中的顺序字节. 这很好,写一次.但是,当我想在中间的某个地方写一个额外的价值时,我必须重写整个内
12 2024-04-25
编程技术问答社区
如何检查一个多维数组是否有一个值和它的索引?
我有一个多维数组: string[,] array = new string[,] { {"cat", "dog", "plane"}, {"bird", "fish", "elephant"}, }; 我想确定它是否包含一个值,如果是,我需要它的索引,假设"鸟". 我需要的是 查找是否包含它. 获取其索引. 获取第二维的长度(我不知道它是如何称呼的),然后将随机值从第二个元素返回到该维度的最后一个. 所以,如果我说"鸟",我希望它在"鱼"和"大象"之间给我一个随机的弦. 如果是正常的数组,我会做一个简单的 random.Next(1, array.Length); 但是,我不知道如何使用2D数组制作. 谢谢! 解决方案 您需要使用array.GetLength()而不是array.Length,以获取多维数组的单个维度的长度. 通过数组迭代.如果找到匹配项,请使用array.GetLength和Random
8 2024-04-25
编程技术问答社区
CSV文件内容转为二维数组
这个问题已经通过不同的输入提出了几次,所以我想对我的要求进行重新发布. 我有一个CSV文件,其中以下面的方式为字符串字段. idnum,name1, name2,groupid idnum,name1, name2,groupid idnum,name1, name2,groupid 示例 s001,sahil,payap,gid0 s002,Amir,Khan,gid02 d003,hrithik,roshan,gid03 我有二维字符串数组.我想逐行阅读我的二维数组. 当阅读时,应该像这样 arr[0][0]=s001 arr[0][1]=name1 arr[0][2]=name2 arr[0][3]=gid01 arr[1][0]=s002 arr[1][1]=Amir arr[1][2]=Khan arr[1][3]=gid04 文件中有40个记录,应该读取到文件末尾. 我需要在C# 中实现此功能 任何代码示例或任何解
6 2024-04-25
编程技术问答社区
如何将2D字符串阵列转换为2D[int, double, bool, ...]阵列?
我的目标是这些. 将数据类转换为字典. 保存/加载该字典到/从TXT,数据库等. 将字典转换为数据类 我认为我解决了Alomost,但仍然有一个问题. 问题是将2D字符串数组转换为2D,其原始数据类型数组. 我已经成功将字符串转换为原始数据类型. 像这样 public static void SetFieldValue(Object target, FieldInfo fieldInfo, string value) { string fieldType = fieldInfo.FieldType.Name; fieldType = fieldType.ToLower(); switch (fieldType) { case "boolean": bool b; fieldInfo.Se
6 2024-04-25
编程技术问答社区
将IEnumerable转换为多维数组
我可以更改以前的代码: char[][] board = Enumerable.Repeat(Enumerable.Repeat('-', 7).ToArray(), 7).ToArray(); 以便使用多维数组? ,例如 char[,] = ... 数组应表示这种数据结构: ------- ------- ------- ------- ------- ------- ------- 解决方案 char[,] board = new char[7,7]; for(int i =0; i
8 2024-04-25
编程技术问答社区
将二维字符串数组转换为二维int数组(多维数组)。
我想替换string[,] 2D数组 public static readonly string[,] first = { {"2", " ", " ", " ", "1"}, {"2", " ", "4", "3", " "}, {" ", "2", " ", "1", " "}, {" ", "1", " ", "3", " "}, {"1", " ", " ", " ", " "} }; 到int[,]数组 int X=-1; public static readonly int[,] second = { {2, X, X, X, 1}, {2, X, 4, 3, X}, {X, 2, X, 1, X}, {X, 1, X, 3, X}, {1, X, X, X, X} }; 是否可以将string[,]数组转换为int[,]数组?如果是,如何将string[,]转换为int[
18 2024-04-25
编程技术问答社区
``foreach''如何通过2D阵列迭代?
我很好奇foreach在多维阵列上foreach循环如何迭代.在以下代码中,第二个嵌套for循环最初是foreach,它会使放置在循环中的音高的位置不正确.我知道很难直觉它的作用,但是基本上是这样:将音调放入多维阵列中(在这里,numVoices为2,而exlength是10),以便您将拥有2x10阵列的音高;然后,MIDI输出设备同时播放了这些俯仰行中的每一行.当我使用a foreach将音调的名称放入字符串中时,我可以显示网格内部哪个位置的音调时,foreach会以"错误"的顺序显示它们(即[ 0,3]在音高网格中不是字符串中的印刷).使用嵌套for,此问题消失了.我试图用一个int s的2D列表的较小示例(下面的代码)重新创建它,但是这次给出了"正确"的答案.为什么? //put pitches into grid //numVoices = 2, exLength = 10 (10 notes long, 2 voices)
10 2024-04-25
编程技术问答社区
为什么这个多维数组在C#中表现得很奇怪?
好吧,首先,我最初在PHP中对此CSV解析器进行了编程.它用于我们内部使用的专用CSV文件.无论如何,我想将其移至C#以获得该语言的一些经验.我唯一能看到的两者之间的不同之处(脚本?)是我将SQLarray从3维锯齿状的数组(数组数组数组)更改为3维数组(SQLarrare [,,]).我遇到的问题只是CSV文件的最后一行是在将数据放入SQLarray之后打印的.输出如下所示. 这是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleIometerParser { class Program { public static int linenum = 0; public static int totaldisks = 0;
4 2024-04-24
编程技术问答社区
什么是三角形阵列的最佳数据存储类型?
是否有数组或数据类型(例如),将值(特定于字符串)安排到这样的三角形形状中... 1 2 3 4 5 6 在我的上面示例中,这些数字中的每个数字都具有2个字符的值.如果我的字符串为"Hello I am a cat",则将其分为"He ll oI am ac at". 我希望我的程序将这些值存储在类似于上面三角形类似的数组中 - 如何实现?有没有办法使值四处移动(例如1=2 2=3 3=4). 解决方案 仅将其存储在数组中是什么问题?全部定义了偏移量(即,第1行,第1行,第2行,第3行3等. 所以,您将拥有的数组:[1,2,3,4,5,6,...] Row #1 offset: 0; // Base Row #2 offset: (1) = 1; Row #3 offset: (1 + 2) = 3; Row #4 offset: (1 + 2 + 3) = 6; Row #5 offset: (1 + 2 + 3 + 4) = 10;
8 2024-04-24
编程技术问答社区
C#将三维矩阵平铺/展开成锯齿状阵列
我必须将3D阵列弄平才能序列化. 让我们从此开始: int[,,] array3D = new int[,,] { { { 1, 2 }, { 3, 4 }, {5,6 }, {7,8 } }, { { 9, 10}, { 11, 12},{ 13,14} , {15,16 }}, { { 17, 18}, { 19, 20},{ 21,22}, {23,24 } } }; 这样做的(大约是1,2,3,4,...,24): 所以我现在有这个s/r public static T[] Flatten(T[,,] arr) { int rows0 = arr.GetLength(0); int rows1 = arr.GetLength(1); int rows2 = arr.GetLength(2); T[] arrFlattened = n
12 2024-04-24
编程技术问答社区
如何从控制台读取一个矩阵并打印所有矩阵元素的总和
我正在学习C#,现在我正在使用多维阵列.我想编写一个读取矩阵的程序: 行的计数 列计数 所有矩阵元素的总和 因此,在下一个 [rows] 线上,我将获得每列的元素,以逗号和空间分开.我做了一个款项,但我不明白如何将元素插入矩阵中.如果您能帮助我,我会很感激! int[] dimensions = Console.ReadLine() .Split(", ", StringSplitOptions.RemoveEmptyEntries) .Select(int.Parse) .ToArray(); int rows = dimensions[0]; int columns = dimensions[1]; int[,] matrix = new int[rows,columns]; for (int i = 0; i
6 2024-04-24
编程技术问答社区
多维关联数组 C#
来自PHP背景的我可以在PHP中这样做: $array[sales_details][uid] = 1; $array[sales_details][name] = "Name Surname"; $array[sales_details][sales][France][Paris] = 50; $array[sales_details][sales][France][Lyon] = 25; $array[sales_details][sales][UK][London] = 75; $array[sales_details][sales][German][Berlin] = 23; 我该如何在C#中执行此操作?我试图研究字典.但是,即使我将值键定义为对象,它也不会接受"销售"数组. var dict = new Dictionary(); dict["uid"] = 1; dict["sales"]["France"]["Paris"]
6 2024-04-23
编程技术问答社区