我有一个数组,它将19
个记录带到数组中,如下所示
[![阵列快照] [1]] [1]
我的最后一个值是""
我想删除它。
这是我在array
string[] arrS = hidRateA.Value.Split(new char[] { ',' });
请告诉我如何从数组中删除最后一个值。
答案 0 :(得分:2)
如果只有最后一项为空,您可以在分割字符串之前修剪最后一个逗号,
:
string[] arrS = hidRateA.Value.TrimEnd(',').Split(new char[] { ',' });
答案 1 :(得分:2)
您可以指定StringSplitOptions.RemoveEmptyEntries
hidRateA.Value.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
另请注意,根据定义," "
(空格)不为空,因此不会从结果数组中删除它。
如果你有空白区域,你可以使用下面的代码来过滤空格。
hidRateA.Value.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries)
.Where(x => !string.IsNullOrWhiteSpace(x))
.Select(s => s.Trim());
答案 2 :(得分:2)
如果您知道最后一项永远是空的并且您不需要检测到它,那么您可以“接受”。
var result=arr.Take(arr.Length-1);
答案 3 :(得分:0)
此代码几乎完全符合您在问题中所要求的内容:
void Main()
{
string firstTest = "1,2,3,"; // ends with a comma
string secondTest = "a,b,c"; // ends with a character
string[] firstArray = CreateArray(firstTest);
PrintArray(firstArray);
Console.WriteLine();
string[] secondArray = CreateArray(secondTest);
PrintArray(secondArray);
}
string[] CreateArray(string str)
{
string[] array = str.Split(',');
return array.Where((s, i) => // return only those cells in the array where
i < array.Length - 1 || // it's not the last character, or
s != string.Empty) // it's not empty
.ToArray(); // in array form
}
void PrintArray(string[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.WriteLine("array[{0}] = '{1}'", i, array[i]);
}
}
但是你没有告诉我们你为什么要做你正在做的事情。你真的只想删除最后一项,如果它是空的吗?如果您只想删除任何空项,那么str.Split(',', StringSplitOptions.RemoveEmptyEntries)
将更适合您。