C# 在CSV值C周围加引号#

C# 在CSV值C周围加引号#,c#,csv,C#,Csv,我有一个方法,可以将以制表符分隔的文本文件转换为CSV文件,并在包含逗号的字段周围加引号。我想改变这个方法,让它在每个字段周围加引号 例如: Convert(乔治,华盛顿,曾任总统) 到 (“乔治”、“华盛顿”、“曾经”、“a”、“总统”)。 任何帮助都将不胜感激。谢谢大家! 下面是我的代码: public void ConvertToCSV() { //converts a tab delimited text file to a csv file st

我有一个方法,可以将以制表符分隔的文本文件转换为CSV文件,并在包含逗号的字段周围加引号。我想改变这个方法,让它在每个字段周围加引号

例如:

Convert(乔治,华盛顿,曾任总统)

(“乔治”、“华盛顿”、“曾经”、“a”、“总统”)。

任何帮助都将不胜感激。谢谢大家!

下面是我的代码:

public void ConvertToCSV()
    {
        //converts a tab delimited text file to a csv file
        string textFilePath = @"C:\Reports\file.txt";

        string csvFilePath = @"C:\Reports\file.csv";


        var input = File.ReadAllLines(textFilePath);
        var lines = input.Select(row => row.Split('\t'));
        lines = lines.Select(row => row.Select(field => field.EscapeCsvField(',', '"')).ToArray());
        var csv = lines.Select(row => string.Join(",", row));
        File.WriteAllLines(csvFilePath, csv.ToArray());

        System.IO.File.Delete(textFilePath);

    }

static class Extension
{
    public static String EscapeCsvField(this String source, Char delimiter, Char escapeChar)
    {
        if (source.Contains(delimiter) || source.Contains(escapeChar))
            return String.Format("{0}{1}{0}", escapeChar, source);

        return source;
    }
}
private string convertCSV(字符串pCSVtext)
{
字符串returnText=“”;
pCSVtext=pCSVtext.Replace(“,”);
string[]split=pCSVtext.split(Convert.ToChar(“,”);
for(int i=0;i
给定以逗号分隔的字符串,例如“George,Washington,was,a,president”,此函数将输出“George”,“Washington”,“was”,“a”,“president”

简单明了

var str = "George, Washington,was,a,president";

var result = "\"" + string.Join("\",\"", str.Split(',')) + "\"";
结果是:

“乔治”,“华盛顿”,“曾经”,“总统”


str.Split
转换分隔csv分隔的字符串,然后使用“
”、“
将它们连接起来,在每个元素之间加上双引号,然后在结果的开头和结尾加上双引号。

是否删除
if(source.Contains(delimiter)| source.Contains(escapeChar))
条件?如果希望每次都执行此操作,而不是在某些条件下执行此操作,则只需删除对该条件的检查,然后每次都执行。注意:如果数据字段(单元格)包含引号,则还需要转义该引号,例如,
John“Smitty”Smith
将变成
John“Smitty”Smith
pCSVtext参数需要csv文件名及其路径,还是只需要文件名?我想在头行之外的整个csv文件周围加引号。我觉得这个方法非常接近于这样做。pCSVtext将只是将整个文件读入字符串后的输出。好吧,我想我知道你在干什么了。您不是在创建字符串“George,Washington,…,,”而是将分隔的文本放入数组???您的csv变量=“George,Washington等…”是否添加了另一个函数,第二个函数将执行相同的操作,但将使用类似于['Goerge','Washington',等..]的数组?抱歉造成混淆。我只想创建一个方法,将csv文件作为输入,并在每个字段值周围加引号。因此,如果一行包含值(George,Washington,was,…),我希望将其更改为(“George”,“Washington”,“was”…)
var str = "George, Washington,was,a,president";

var result = "\"" + string.Join("\",\"", str.Split(',')) + "\"";