我有一个由数组中的值组成的字符串,取自excel表,只有部分值为空。我正在将这些值输出到CSV文件,但不希望输出空白值,这些值以逗号形式输出,因此在我的CSV文件中为我提供了额外的行。
无论如何,这是我的代码,我想在将它们添加到字符串之前将数组值单独比较为不等于“”。如果这是不可能的,我想我可以分割字符串,比较,然后重新加入。
enter code here//Get a range of data.
range = objSheet.get_Range(ranges1, ranges2);
//Retrieve the data from the range.
Object[,] saRet;
saRet = (System.Object[,])range.get_Value(Missing.Value);
//Determine the dimensions of the array.
long iRows;
long iCols;
iRows = saRet.GetUpperBound(0);
iCols = saRet.GetUpperBound(1);
//Build a string that contains the data of the array.
String valueString;
valueString = "";
System.IO.StreamWriter OutWrite = new System.IO.StreamWriter("h:\\out.csv");
for (long rowCounter = 1; rowCounter <= iRows; rowCounter++)
{
for (long colCounter = 1; colCounter <= iCols; colCounter++)
{
//Write the next value into the string.
valueString = String.Concat(valueString, Convert.ToString(saRet[rowCounter, colCounter]) + ", ");
}
//Write in a new line.
{
valueString = String.Concat(valueString, "\n");
}
}
//Report the value of the array.
MessageBox.Show(valueString, "Array Values");
OutWrite.WriteLine(valueString);
OutWrite.Close();
OutWrite.Dispose();
}
干杯,谢谢你的耐心等待!
安迪。
答案 0 :(得分:4)
我认为您正在寻找String.IsNullOrEmpty Method 。
答案 1 :(得分:2)
public static class ExtensionLib
{
public static string MyConcat(this string input, params string[] others)
{
if (others == null || others.Length == 0)
return input;
string retVal = input??"";
foreach(string str in others)
{
if (String.IsNullOrEmpty(str))
return input;
retVal += str;
}
return retVal;
}
}
使用它如下:
...
valueString.MyConcat(arg1, arg2, ...);
小心这一行:
valueString = String.Concat(valueString, Convert.ToString(saRet[rowCounter, colCounter]) + ", ");
改为写
valueString = valueString.MyConcat(Convert.ToString(saRet[rowCounter, colCounter]), ", ");
答案 2 :(得分:1)
String valueString;
valueString = "";
if (!valueString.Equals(compare))
您可以将其重写为:
if (!String.IsNullOrEmpty(compare))
事实上,你应该。无需重新发明.NET提供的内容。
答案 3 :(得分:0)
newValue += (oldValue ?? string.empty)