根据对象列表创建一个csv文件C#

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据对象列表创建一个csv文件C#相关的知识,希望对你有一定的参考价值。

如何从通用对象列表创建CSV文件?在此示例中,一个分子列表,包含3个分子类型的对象:

namespace example_reactioncalc
{

    class Program
    {
        public class Molecule
        {
            public double property_A { get; set; }
            public double property_B { get; set; }
        }

        public static Molecule Reaction(Molecule molecule_1, Molecule molecule_2)
        {
            Molecule reacted_molecule = new Molecule();
            reacted_molecule.property_A = molecule_1.property_A + molecule_2.property_A;
            reacted_molecule.property_B = (molecule_1.property_B + molecule_2.property_B) / 2;
            return reacted_molecule;
        }

        static void Main(string[] args)
        {
            // Initiation of the list of molecules
            List<Molecule> molecules = new List<Molecule>();

            // Adding two molecules to the list
            molecules.Add(new Molecule() { property_A = 10, property_B = 20 });
            molecules.Add(new Molecule() { property_A = 3, property_B = 7 });

            // Reacting two molecules to get a new one:  
            Molecule new_molecule=Reaction(molecules[0],molecules[1]);
            molecules.Add(new_molecule);

这里,可以打印3个对象的列表属性之一的内容:

            Console.WriteLine("Properties A and B of the 1st molecule:");
            Console.WriteLine(molecules[0].property_A);
            Console.WriteLine(molecules[0].property_B);
            Console.WriteLine("Property A and B of the 2nd molecule:");
            Console.WriteLine(molecules[1].property_A);
            Console.WriteLine(molecules[1].property_B);
            Console.WriteLine("Property A and B of the 3rd, new molecule:");
            Console.WriteLine(molecules[2].property_A);
            Console.WriteLine(molecules[2].property_B);
            Console.ReadLine();
        }
    }
}

输出:

Properties A and B of the 1st molecule:
10
20
Properties A and B of the 2nd molecule:
3
7
Properties A and B of the 3rd, new molecule:
13
13.5

所以我需要一个具有完整输出的csv文件:

10,20
3,7
13,13.5

我试图在论坛上找到这种方法,但是我只找到了数组通用列表的示例,而我却无法使它们正常工作。非常感谢您在此问题上的任何帮助(我是C#的初学者)。

答案

CSV文件很容易生成:

using (StreamWriter writer = new StreamWriter("myfile.csv"))
{
    foreach (Molecule molecule in molecules)
    {
        writer.WriteLine($"{molecule.property_A},{molecule.property_B}");
    }
}
另一答案

您是否尝试过System.IO.File?这是打开和写入文件的简单方法:example

看来您将需要如下所示的某种方法;

    WriteMoleculesToFile(string pathToFile, Molecule[] molecules) {
        using (System.IO.StreamWriter file = new System.IO.StreamWriter(@pathToFile)) {
            foreach (Molecule molecule in molecules) {
                file.WriteLine(String.Format("{0},{1}",molecule.property_A, molecule.property_B));
            }
        {
    }

以上是关于根据对象列表创建一个csv文件C#的主要内容,如果未能解决你的问题,请参考以下文章

从三个单独的列表创建一个 .csv 文件

如何创建具有从 csv 文件中的列表收集的唯一名称值的类的多个对象

忽略CSV文件中的无效对象

如何在片段内创建自定义列表视图

在闪亮的 Web 应用程序中根据用户输入选择特定的 csv 文件

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段