Как читать CSV в объекты specfi c в списке (включая Ints, Strings, Gender Enum & DOB) - PullRequest
0 голосов
/ 15 апреля 2020

Мне было просто интересно, как я могу решить проблему VS, подразумевая, что я не дал аргумент, который соответствует необходимому формальному параметру 'id' объекта 'customer.customer (int, string, string, string, Gender, DateTime ) 'пока я предоставил всю такую ​​информацию и в качестве дополнительного вопроса;

Почему моя гендерная ценность не позволяет мне превратить ее из строки в Gender.Male / Gender.Female?

public static void LoadFromFile()
        {
            List<Customer> customerlst = File.ReadAllLines(@"..\..\..\customers.csv")
                                                .Skip(1)
                                                .Select(v => CRM.FromCsv(v))
                                                .ToList();
        }
        public static Customer FromCsv(string csvLine)
        {
            string[] customerlst = csvLine.Split(',');
            Customer customer = new Customer
            {
                ID = int.Parse(customerlst[0]),
                Title = Convert.ToString(customerlst[1]),
                FirstName = Convert.ToString(customerlst[2]),
                LastName = Convert.ToString(customerlst[3]),
                Gender = customerlst[4],
                DOB = Convert.ToDateTime(customerlst[5])
            };
            return customer;
        }

1 Ответ

0 голосов
/ 15 апреля 2020

Есть ли у вашего Заказчика конструктор по умолчанию, который не принимает параметров? Или, если вы назовете это как new customer(int.Parse(customerlst[0]), Convert.ToString(customerlst[1]), etc.)

В качестве альтернативы, вы можете задать конструктор без параметров для Customer и сохранить настройки ваших значений, как вы делаете. Я бы поспорил за то, что это меньшая опция, хотя конструктор будет хорошим местом для проверки ввода.

Для Gender вы можете использовать Enum.Parse(typeof(Gender), customerlst[4]) или предпочтительно Enum.TryParse

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...