конвертировать строку в int32 при добавлении элементов сетки данных - PullRequest
0 голосов
/ 14 апреля 2011

Ребята, простите за основной вопрос. Я пытаюсь выяснить, но я все еще застреваю с этим. Я новичок в программировании, поэтому, если вы, ребята, можете мне помочь, это очень много значит. Благодарю. Для этого кода я получил помощь от кого-то на этом сайте.

Вот моя проблема, у меня есть .txt данные, подобные этому

10192 20351 30473 40499 50449 60234 

10192 20207 30206 40203 50205 60226 

10192 20252 30312 40376 50334 60252

И это мой код, где я открываю текстовый файл и разбираю его на числа и помещаю его в сетку данных из 6 столбцов.

Итак, мои данные в сетке данных выглядят так:

Столбец 1 | Столбец 2 | Столбец 3 | Столбец 4 | Столбец 5 | Столбец 6

10192 | 20351 | 30473 | 40499 | 50449 | 60234

private void Parsing_String(string filename)
    {
        List<Row> list = new List<Row>();

        foreach (String str in File.ReadLines(filename))
        {
            String[] strCols = str.Split(Convert.ToChar(" "));
            list.Add(new Row()
            {
                Column1 = strCols[0].Substring(2),
                Column2 = strCols[1].Substring(2),
                Column3 = strCols[2].Substring(2),
                Column4 = strCols[3].Substring(2),
                Column5 = strCols[4].Substring(2),
                Column6 = strCols[5].Substring(2),
            });
        }



        dg.ItemsSource = list;
    }

    public class Row
    {
        public string Column1 { get; set; }
        public string Column2 { get; set; }
        public string Column3 { get; set; }
        public string Column4 { get; set; }
        public string Column5 { get; set; }
        public string Column6 { get; set; }

    }

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

например: сначала я помещаю первую строку строк в сетку данных, которые содержат 6 групп чисел, и вычисляю это. Далее второй ряд. и так далее. Как я могу получить число, которое я хочу, и поместить его в математическое уравнение.

Все равно спасибо.

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Если вы используете данные для привязки, не должно возникнуть проблем с сохранением преобразованных значений в строке:

list.Add(new Row()
            {
                Column1 = int.Parse(strCols[0]),
                ...

Какой бы пользовательский интерфейс вы ни поместили сверху, он вызовет ToSTring () дляэто в любом случае и отобразить вещь в виде строки.Следовательно, ваш строковый объект имеет 6 дюймов.

На второстепенной ноте, в C # вы можете обозначить символ одинарными кавычками, тогда разделение становится: str.Split(' ')

Для большей элегантности выможет иметь интерпретацию строк внутри вашего объекта Row, передав одну строку файла в конструктор и выполнив разбиение в конструкторе.Тогда вы можете сделать сеттеры на ряд приватными.Цикл foreach становится:

dg.ItemsSource = File.ReadLines(filename).Select(line => new Row(line)).ToList();
0 голосов
/ 14 апреля 2011

Если взять пример flq , я бы не стал рассчитывать на данные и сделал бы что-то подобное, так что если при разборе не получится, вы получите 0 - если вы не хотите перехватить исключение и обращаться с этим по-другому.

int outValue;
list.Add(new Row()
            {
                Column1 = int.TryParse(strCols[0].Substring(2), out outValue) ? outValue : 0;,
                 ...
0 голосов
/ 14 апреля 2011

Вам необходимо использовать Int32.TryParse для преобразования строк в int32.

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