在添加到字符串之前捕获空值

时间:2010-10-27 13:36:14

标签: c# visual-studio-2008

嘿伙计们,我只能因为问这样一个菜鸟问题而道歉,但这是今天我第二次依赖这个令人敬畏的论坛:)

我有一个由数组中的值组成的字符串,取自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();
}

干杯,谢谢你的耐心等待!

安迪。

4 个答案:

答案 0 :(得分:4)

我认为您正在寻找String.IsNullOrEmpty Method

(。{4}中的String.IsNullOrWhiteSpace 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)