Как преобразовать строку в double в C # - PullRequest
0 голосов
/ 25 октября 2018

В следующем коде рейтинг в ошибке генерации

string[] allLines = File.ReadAllLines(@"Ratings.csv");

var parsed = from line in allLines
            let row = line.Split(';')
             select new
             {
                 UserId = row[0],
                 ItemId = row[1],
                 rating = row[3]
            };
var Rating = parsed.Select(x => new AddRating (x.UserId, x.ItemId,x.rating));

client.Send(new Batch(Rating));


var detailViews = parsed.Select(x => new AddDetailView(x.UserId, x.ItemId,x.rating ));

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

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

То, как написан ваш код, вам придется изменить способ использования оператора .Select, чтобы разобрать его в достойной манере обработки ошибок.

I 'Я предлагаю заменить .Select на foreach, затем проанализировать каждое свойство и создать экземпляр класса.

foreach (var item in parsed)
{
    double userId = 0;
    double itemId = 0;
    double rating = 0;
    double.TryParse(item.UserId, out userId);
    double.TryParse(item.ItemId, out itemId);
    double.TryParse(item.rating, out rating);

    var rating = new AddRating(userId, itemId, rating);
    //**** do whatever you want with the new object
}
0 голосов
/ 25 октября 2018
String st = "85.78";
Double db = Convert.ToDouble(st);

//Or With Error Hndler

try
        {
            string st = "85.78";
            Double db = Convert.ToDouble(st);
        }
catch (FormatException)
        {

            // Your error handler 

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