C# 初始化整数数组 string剂量=“2/3/5毫克”; string[]dosageStringArray=剂量.Split('/'); int[]dosageIntArray=null; 对于(int i=0;i
,您试图在此处访问空数组(dosageIntArray):C# 初始化整数数组 string剂量=“2/3/5毫克”; string[]dosageStringArray=剂量.Split('/'); int[]dosageIntArray=null; 对于(int i=0;i,c#,asp.net,arrays,exception,C#,Asp.net,Arrays,Exception,,您试图在此处访问空数组(dosageIntArray): 您需要先对其进行初始化,然后才能像那样访问它。您正在尝试访问一个空数组(dosageIntArray),如下所示: 您需要先初始化它,然后才能像那样访问它。您正在寻找类似 dosageIntArray[i] = Common.Utility.ConvertToInt(lastDigit[0]); 你在找类似的东西 dosageIntArray[i] = Common.Utility.ConvertToInt(lastDigit[0])
您需要先对其进行初始化,然后才能像那样访问它。您正在尝试访问一个空数组(dosageIntArray),如下所示:
您需要先初始化它,然后才能像那样访问它。您正在寻找类似
dosageIntArray[i] = Common.Utility.ConvertToInt(lastDigit[0]);
你在找类似的东西
dosageIntArray[i] = Common.Utility.ConvertToInt(lastDigit[0]);
您必须按如下方式分配剂量:
int[] dosageIntArray = new int[dosageStringArray.Length];
此外,代码中还有另一个bug:
数组最后一个元素的索引长度为-1。
您的for声明应为:
in[] dosageIntArray = new int[dosageStringArray.Length];
for(int i=0;i
或
对于(int i=0;i您必须按如下方式分配剂量:
int[] dosageIntArray = new int[dosageStringArray.Length];
此外,代码中还有另一个bug:
数组最后一个元素的索引长度为-1。
您的for声明应为:
in[] dosageIntArray = new int[dosageStringArray.Length];
for(int i=0;i
或
用于(int i=0;i我强烈建议您使用列表而不是数组。您不需要定义列表的大小,只需向列表中添加项目即可。它非常实用且易于使用。我强烈建议您使用列表而不是数组。您不需要定义列表的大小,只需向列表中添加项目即可。它非常实用且非常简单r使用。解决方案的最大问题不是缺少数组声明,而是如何使用
您将解析以下代码:
for (int i = 0; i <= (dosageStringArray.Length - 1); i++)
由于您的问题肯定是特定于域的,因此可能不会出现这种情况,但表示相同整数的两个数字会有一些变化
以下解决方案以正斜杠拆分字符串,然后在将其转换为整数之前从子字符串中删除任何非数字
string dosage = "2/13/5 mg";
或者不管可爱的Linq synthax看起来怎么样。解决方案的最大问题不是缺少数组声明,而是如何声明
您将解析以下代码:
for (int i = 0; i <= (dosageStringArray.Length - 1); i++)
由于您的问题肯定是特定于域的,因此可能不会出现这种情况,但表示相同整数的两个数字会有一些变化
以下解决方案以正斜杠拆分字符串,然后在将其转换为整数之前从子字符串中删除任何非数字
string dosage = "2/13/5 mg";
或者是用可爱的Linq synthax做的任何东西。作为替代方法:
Regex digitsOnly = new Regex(@"[^\d]");
var array = dosage.Split('/')
.Select(num => int.Parse(digitsOnly.Replace(num, string.Empty)))
.ToArray();
作为替代办法:
Regex digitsOnly = new Regex(@"[^\d]");
var array = dosage.Split('/')
.Select(num => int.Parse(digitsOnly.Replace(num, string.Empty)))
.ToArray();
Oy,我真的希望这离生产代码远点。>@asma…我弄错了。但是你可以使用Split(“/”,“”),只需删除最后一个值@神田翠 哦,我不知道这一点。事实上,我在C#Oy中没有太多的工作,我真的希望这离生产代码远点。>@asma…我错了。但是你可以使用Split('/',''),只删除最后一个值@神田翠 哦,我不知道这个。实际上我在C#Thanx Dominik中没有太多工作,这看起来很完美。需要使用长度(数组长度)初始化Thanx Dominik,这看起来很完美。需要使用长度(数组长度)初始化嗯…你是对的。但是问题是从Dominik提到的地方开始的。另外,需要修改循环变量与array.length的if相等性检查,以与array.length进行检查-1hmmm…你是对的。但是问题是从Dominik提到的地方开始的。另外,需要对循环变量与array.length的if相等性检查要修改以检查数组。length-1如果数组大小是静态的,我认为没有必要使用list。如果可以使用list,那么使用数组是没有意义的。@Kirk,虽然list肯定更方便,但它也使用数组来支持数据。因此,如果预先知道维度,我看不到u的真正缺点唱一个数组。也就是说,问题中提出的任务应该用两种方法都不使用IMHO来解决。我认为如果数组大小是静态的,那么使用列表是没有意义的。如果你可以使用列表,那么使用数组是没有意义的。@Kirk,虽然列表当然更方便,但它也使用数组来支持数据。所以如果ion是预先知道的,我看不到使用数组的真正缺点。也就是说,问题中提出的任务应该用两种方法都不使用IMHO来解决。你的解决方案是如此简洁和微妙。我的解决方案是一团糟!我更喜欢用你的解决方案。你的解决方案是如此简洁和微妙。我的解决方案是一团糟!我更喜欢用你的解决方案。