linq - 从 LINQ 中的字符串列表生成 CSV

标签 linq csv

您好,我想获取一个列表集合并生成一个 csv 行。所以拿这个;

List<string> MakeStrings()
{
    List<string> results = new List<string>();
    results.add("Bob");
    results.add("Nancy");
    results.add("Joe");
    results.add("Jack");
    return results;       
}


string ContactStringsTogether(List<string> parts)
{
    StringBuilder sb = new StringBuilder();

    foreach (string part in parts)
    {
        if (sb.Length > 0)
            sb.Append(", ");

        sb.Append(part);
     }
     return sb.ToString();
}

这将返回“Bob,Nancy,Joe,Jack”

正在寻求有关 LINQ 的帮助以在单个语句中执行此操作。谢谢!

最佳答案

没有任何类轮可以使用 LINQ 执行此操作。请注意,您可以使用 Aggregate 方法来执行此操作,但您将使用字符串连接而不是 StringBuilder。如果您经常这样做,我会考虑为此添加一个扩展方法:

    public static string ToCsv<T>(this IEnumerable<T> source)
    {
        if (source == null) throw new ArgumentNullException("source");
        return string.Join(",", source.Select(s => s.ToString()).ToArray());
    }

关于linq - 从 LINQ 中的字符串列表生成 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2758850/

相关文章:

C# 不能在 ushort 列表项中使用 Linq DefaultIfEmpty?

即使设置了 PK,C# LinqToSql SubmitChanges() 也不会更新

python - 从 python 中的字典列表中写出一个 csv 文件

python - 使用两个文件之间的经度和纬度比较距离

Python CSV 删除空行

mysql - 在目录列表生成的增量编号文件的 CSV 中插入缺失的行?

php - 将 14 位时间戳从 CSV 导入 MySQL 并避免删除数据

c# - 让 SequenceEqual 为列表工作

c# - 将 soap XML 解析为 C# 类

c# - LINQ - Where 表达式是否返回新实例或对对象实例的引用