【发布时间】:2015-04-11 00:57:32
【问题描述】:
我是 C# 新手。
我有一个被拆分为字符串数组的字符串,并且其中一个元素需要再次拆分为字符串数组,因为它的解析方式不同。然后我试图将字符串数组转换为浮点数组,并将它们组合成一个最终的浮点数组,每个人都在原来的位置。
string ido = "433, 045, 3-3-15, 444, 0.6,3.9,4,5,5,4,3,3";
string[] sn= ido.Split(',', 13, StringSplitOptions.RemoveEmptyEntries);
string subnum = sn[2];
string[] st = subnum.Split('-',3,StringSplitOptions.RemoveEmptyEntries);
float [] stNum = array.ConvertAll<string, float>(st, float.Parse)
float[] fArray = new float[ float.Parse(sn[0]), float.Parse(sn[1]),...
stNum, float.Parse(sn[3:end])];
我知道最后一行是错误的。我不想将每个元素分别输入到 float.Parse() 中。我正在尝试有没有更好的方法来做到这一点?我可以使用 ConvertAll,但如何才能将字符串数组中的元素从元素 3 获取到数组的末尾?
【问题讨论】:
-
最终所需的输出是否为以下浮点数组:
{433, 45, 3, 3, 15, 444, 0.6, 3.9, 4, 5, 5, 4, 3, 3?如果是这样,您应该可以执行以下操作:ido.Split(new [] { ',', '-' }).Select(float.Parse).ToArray(). -
如果使用 for 遍历数组会怎样?
-
你可以使用扩展方法
Skip跳过前2个元素,它会返回一个从元素3开始的新数组(ToArray())。var a = new[] { 1,2,3,4 }; a = a.Skip(2).ToArray(); -
谢谢大家帮忙!我认为 a.skip 方法是我正在寻找的,但我将使用其他方法来清理我的代码。非常感谢!