此问题在此处已有答案:
Writing data into CSV file in C#(15个答案)
8小时前关门。
我不认为我的问题是重复的,因为我不是问如何将列表转换为CSV。但是:
我正在尝试将列表转换为逗号分隔的csv文件。
但是,某些字段包含逗号和分号。
如果有逗号,一列将被拆分为至少两列。
我的代码:
public void SaveToCsv<T>(List<T> listToBeConverted)
{
var lines = new List<string>();
IEnumerable<PropertyDescriptor> props = TypeDescriptor.GetProperties(typeof(T)).OfType<PropertyDescriptor>();
//Get headers
var header = string.Join(",", props.ToList().Select(x => x.Name));
//Add all headers
lines.Add(header);
//LinQ to get all row data and add commas to serperate them
var valueLines = listToBeConverted.Select(row => string.Join(",", header.Split(',').Select(a => row.GetType().GetProperty(a).GetValue(row, null))));
//add row data to List
lines.AddRange(valueLines);
...
}
当字符串为System.String
时,如何修改LinQ语句,在字符串的开头和结尾添加双引号?
2条答案
按热度按时间htrmnn0y1#
使用属性信息可实现此目的。
kognpnkq2#
CSV为逗号分隔值,但分隔符基于您的默认系统分隔符!对列使用系统分隔符,对行使用结束行。
您可以通过以下方式找到系统默认值:
打开控制面板
开放时钟和区域
单击“附加设置”
您可以查看和更改系统的默认分隔符