【问题标题】:How do I call this list from another class in C#?如何从 C# 中的另一个类调用此列表?
【发布时间】:2020-08-05 17:16:42
【问题描述】:

我对整个 C# 事物还是新手,但我发现这段代码大约 5 年前从 grovesNL 发布,我相信它会起作用。

 namespace DataAccessClass
{
    public class FileReader
    {
        static void Main(string[] args)
        {
            List<DailyValues> values = File.ReadAllLines("C:\\Users\\Josh\\Sample.csv")
                                           .Skip(1)
                                           .Select(v => DailyValues.FromCsv(v))
                                           .ToList();
        }
    }

    public class DailyValues
    {
        DateTime Date;
        decimal Open;
        decimal High;
        decimal Low;
        decimal Close;
        decimal Volume;
        decimal AdjClose;

        public static DailyValues FromCsv(string csvLine)
        {
            string[] values = csvLine.Split(',');
            DailyValues dailyValues = new DailyValues();
            dailyValues.Date = Convert.ToDateTime(values[0]);
            dailyValues.Open = Convert.ToDecimal(values[1]);
            dailyValues.High = Convert.ToDecimal(values[2]);
            dailyValues.Low = Convert.ToDecimal(values[3]);
            dailyValues.Close = Convert.ToDecimal(values[4]);
            dailyValues.Volume = Convert.ToDecimal(values[5]);
            dailyValues.AdjClose = Convert.ToDecimal(values[6]);
            return dailyValues;
        }
    }
}

我正在尝试读取跳过标题的 csv 文件并将其放入可从另一个类访问的列表中。所以我的体系结构是 DataAccessClass,它有一个名为 FileReader 的类和一个名为 Values 的类。我的任务是将此 csv 文件读入 FileReader 类,然后创建一个对象列表以将其保存在 Values 类中。当我去 Values 类调用它时,我无法弄清楚。这就是我试图称呼它的方式。就是说 DailyValues.FromCsv(string) 是一种无效的方法。

    public List<string> GetList()
        {
            return DataAccessClass.DailyValues.FromCsv.dailyValues;


        }

我希望能够在堆栈的更深处访问此列表。

【问题讨论】:

    标签: arrays list csv


    【解决方案1】:

    你的表情DataAccessClass.DailyValues.FromCsv.dailyValues是罪魁祸首。

    DataAccessClass.DailyValues.FromCsv 有效,并引用类DataAccessClass.DailyValues 中名为FromCsv 的静态方法。但是继续添加.dailyValues 是不正确的。这是一种方法,使用. 没有什么可以窥探和提取的东西。

    您可以(如果这是有意的话)调用该函数,并直接使用结果:

    DataAccessClass.DailyValues.FromCsv(some_csv_string)DailyValues 类型的表达式。然后您可以在那里访问 - 例如 - 'High':

    DailyValues dv;
    dv = DataAccessClass.DailyValues.FromCsv(some_csv_string);
    dosomething(dv.High);
    

    但要使其工作,High 必须具有 public 的可见性。

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多