如何在.add之后在每个列表元素周围添加引号?

时间:2011-09-01 20:33:25

标签: c# list anonymous-methods

我有一个列表

 private List<string> additionalHeaderMeta = new List<string>();

我希望将其输出到csv文件。所有这些工作都可以查找,但事实证明我添加到additionalHeaderMeta的一些元素可能会在其中包含逗号,这有时显然会混淆csv文件。如何在添加元素后在每个元素周围加上引号?

我试过

additionalHeaderMeta.Select(i => "\"" + i + "\"");

但那里没有运气。

2 个答案:

答案 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 + "\"");

工作得很好。它将返回一个添加了引号的新列表。

修改现有列表 - 这是你的混乱来源吗?