Функция для ввода данных через запятую - PullRequest
1 голос
/ 08 декабря 2010

Я получаю возвращаемый тип данных из одной из моих функций

Но так как мне нужно отобразить его в многострочном текстовом поле, мне нужна функция, которая должна преобразовывать данные в запятуюзначение, которое будет отображаться в многострочном текстовом поле.

Может ли кто-нибудь предложить мне такую ​​функцию, которая бы удовлетворяла мою потребность.

1 Ответ

0 голосов
/ 08 декабря 2010

Мне пришлось написать самому некоторое время назад.Я написал свой, чтобы записать его в поток (так как я сохранял его на диск, но было бы несложно изменить его на использование System.Text.StringBuilder (который я использовал бы для объединения строк для повышения производительности).

public static void ToCsv(Stream stream, DataTable dataTable, bool includeColumnHeaders, char valueDelimiter, char textQualifier, string rowDelimiter)
    {
        StreamWriter sw = new StreamWriter(stream);
        string valueFormatString = (textQualifier + "{0}" + textQualifier).Trim();

        if (includeColumnHeaders)
        {  
            for(int i = 0; i < dataTable.Columns.Count; i++)
            {
                sw.Write(String.Format(valueFormatString, dataTable.Columns[i].ColumnName.Replace(textQualifier.ToString(), textQualifier.ToString() + textQualifier.ToString())));

                if (i != dataTable.Columns.Count - 1)
                    sw.Write(valueDelimiter);
            }

            sw.Write(rowDelimiter);
        }

        for(int i = 0; i < dataTable.Rows.Count; i++)            
        {
            for (int j = 0; j < dataTable.Rows[i].ItemArray.Length; j++)
            {
                sw.Write(String.Format(valueFormatString, dataTable.Rows[i][j].ToString().Replace(textQualifier.ToString(), textQualifier.ToString() + textQualifier.ToString())));

                if(j != dataTable.Rows[i].ItemArray.Length - 1)
                    sw.Write(valueDelimiter);
            }
            sw.Write(rowDelimiter);
        }

        sw.Flush();
    }

HTH, Брайан

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...