我有一个列表
private List<string> additionalHeaderMeta = new List<string>();
我希望将其输出到csv文件。所有这些工作都可以查找,但事实证明我添加到additionalHeaderMeta的一些元素可能会在其中包含逗号,这有时显然会混淆csv文件。如何在添加元素后在每个元素周围加上引号?
我试过
additionalHeaderMeta.Select(i => "\"" + i + "\"");
但那里没有运气。
答案 0 :(得分:2)
如果你想修改列表,只需循环它。
for (int index = 0; index < list.Count; index++)
list[index] = /* modify item here */
您所做的是创建一个可以延迟评估的查询定义,但实际上您需要迭代查询。如果您想实际保留未修改的列表,请使用查询,但只是想将数据投影到修改后的表单中。
var query = additionalHeaderMeta.Select(i => "\"" + i + "\"");
foreach (var item in query)
do whatever
要简单地将您的列表完全替换为另一个,请在查询中使用ToList()
并将结果分配回原始列表。
additionalHeaderMeta = additionalHeaderMeta.Select(i => "\"" + i + "\"").ToList();
答案 1 :(得分:1)
您的示例代码:
additionalHeaderMeta.Select(i => "\"" + i + "\"");
工作得很好。它将返回一个添加了引号的新列表。
它不修改现有列表 - 这是你的混乱来源吗?