【问题标题】:C# FileHelpers - Write new record to csv without using an input fileC# FileHelpers - 在不使用输入文件的情况下将新记录写入 csv
【发布时间】:2012-03-26 14:30:59
【问题描述】:

我看过的所有地方都是如何将 csv 文件读入 FileHelpers,然后写出相同的数据。我正在尝试构建一个 Record 类,基于来自应用程序其他区域的输入,我将设置每条记录的值,然后将行输出到 csv。

所以我想要一些这样的:

[DelimitedRecord(",")]
public class Records
{
    [FieldNullValue(typeof(String), "")]
    public static string data1;

    [FieldNullValue(typeof(String), "")]
    public static string data2;

    [FieldNullValue(typeof(String), "")]
    public static string data3;
}

然后在另一个班级我会设置这些记录:

public class Class
{
    public static void Method()
    {
        Records.data1 = "Something";
        Records.data2 = "Something";
        Records.data3 = "Something";
    }
} 

从这一点开始,我对如何将这些记录写入 csv 文件或稍后可以写入 csv 文件的列表感到困惑。当我尝试创建引擎时

DelimitedFileEngine e = new DelimitedFileEngine(typeof(Records));

我收到一条错误消息,提示“记录类 Records 不包含任何字段”。有人知道我错过了什么吗?我在文档中找不到解释如何执行此操作的任何地方。

【问题讨论】:

  • 尝试不使用静态字段
  • 你试过让你的属性不是静态的吗?
  • 执行此操作时出现“非静态字段需要对象引用”错误。
  • @Ron:您需要创建 Records 类的实例,然后在该实例上设置属性。
  • 仍然没有得到它..我从属性中删除了静态并删除了“Records.data1 = “Something”,以便现在 DelimitedFileEngine 可以工作,因此它可以读取记录类。我创建了一个实例类的像:Records[] rec = new Records[]; (这可能是错误的)但我现在不知道如何设置记录中变量的值。

标签: c# .net csv filehelpers


【解决方案1】:

刚开始尝试这样的事情

[DelimitedRecord(",")]
public class Records
{
    [FieldNullValue(typeof(String), "")]
    public string data1;

    [FieldNullValue(typeof(String), "")]
    public string data2;

    [FieldNullValue(typeof(String), "")]
    public string data3;
}


public class Class
{
    public static void Method()
    {
        Records r= new Records();
        r.data1 = "Something";
        r.data2 = "Something";
        r.data3 = "Something";
    }
} 

这允许您创建一个对象并添加数据...也许快速回顾一下 OOP 可能会有所帮助。

【讨论】:

  • 我明白了,谢谢。我试图将类创建为数组。
  • 你需要这个类的数组(类似 Records[] r)还是包含数组的类?在第一种情况下,类似 Records[] r; r = 新记录[10];应该做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-29
相关资源
最近更新 更多