使用泛型类定义导入数据文件

Sch*_*ime 5 c# generics file-io

我正在尝试导入一个包含多个记录定义的文件.每个人也可以有一个标题记录,所以我想我会定义一个这样的定义界面.

public interface IRecordDefinition<T>
{
    bool Matches(string row);
    T MapRow(string row);
    bool AreRecordsNested { get; }
    GenericLoadClass ToGenericLoad(T input);
}
Run Code Online (Sandbox Code Playgroud)

然后我为一个类创建了一个具体的实现.

public class TestDefinition : IRecordDefinition<Test>
{
    public bool Matches(string row)
    {
        return row.Split('\t')[0] == "1";
    }

    public Test MapColumns(string[] columns)
    {
        return new Test {val = columns[0].parseDate("ddmmYYYY")};
    }

    public bool AreRecordsNested
    {
        get { return true; }
    }

    public GenericLoadClass ToGenericLoad(Test input)
    {
        return new GenericLoadClass {Value = input.val};
    }
}
Run Code Online (Sandbox Code Playgroud)

但是对于每个文件定义,我需要存储一个记录定义列表,这样我就可以遍历文件中的每一行并相应地处理它.

首先,我是在正确的轨道上
还是有更好的方法来做到这一点?

jon*_*ers 2

您是否使用Linq查看过某些内容?这是 Linq to Text 和 Linq to Csv 的快速示例。

我认为使用“yield return”和 IEnumerable 来获得你想要的效果会更简单。这样,您的界面上可能只有 1 个方法。