Ошибка CS1503 Аргумент 1: не удается преобразовать из "string" в "char" - C#

Узнай цену своей работы

Формулировка задачи:

Ошибку как исправить? Вот такие ошибки: Ошибка CS1503 Аргумент 1: не удается преобразовать из "string" в "char". Ошибка CS1503 Аргумент 1: не удается преобразовать из "string" в "char". Ошибка CS1503 Аргумент 2: не удается преобразовать из "string" в "char". Ошибка CS1503 Аргумент 2: не удается преобразовать из "string" в "char".
using System;
using System.IO;
using System.Collections.Generic;
 
namespace Grapher
{ class Program
{
    static void Main(string[] args)
    {
        string[] data = File.ReadAllLines("массив.txt");
        int length = data[0].Split(';').Length, i;
        Graph graph = new Graph();
        for (i = 0; i < length; i++)
        {
            string[] str = data[i].Split(';');
            var vertices = new Dictionary<char, int>();
            for (int j = 0; j < length; j++)
                if (Convert.ToInt32(str[j]) != 0)
                    vertices.Add(Char.Parse((j + 1).ToString()), Convert.ToInt32(str[j]));
 
            graph.add_vertex(Char.Parse((i + 1).ToString()), vertices);
        }
       
        string start = Console.ReadLine(); // Номер начального пункта
            string end = Console.ReadLine(); // Номер конечного пункта
        var result = graph.all_ways(start, end, "", 0);
 
        using (var sw = new StreamWriter("результат.txt"))
        {
            foreach (var item in result)
                sw.WriteLine(item);
            sw.WriteLine("Кратчайшее расстояние равно " + graph.shortest_path(start, end));
        }
        Console.Write("Результат был сохранен в файле результат.txt");
        Console.ReadLine();
    }
}
}

    class Graph
    {
        Dictionary<char, Dictionary<char, int>> vertices = new Dictionary<char, Dictionary<char, int>>();
        public void add_vertex(char name, Dictionary<char, int> edges)
        {
            vertices[name] = edges;
        }
        public List<string> all_ways(char current, char end, string path, int weight)
        {
            List<string> pathes = new List<string>();
            if (path.IndexOf(current.ToString() + " ") != -1)
 
                return pathes;
            else
                if (path == "")
                path = current.ToString() + " = 0";
            else
            {
                int index = path.IndexOf("=");
                string temp = path.Substring(0, index);
                string sum = path.Substring(index + 1);
                weight += Convert.ToInt32(sum);
                path = temp + "-> " + current.ToString() + " = " + weight.ToString();
            }
            if (current == end)
            {
                pathes.Add(path);
                return pathes;
            }
            foreach (KeyValuePair<char, int> pair in vertices[current])
            {
                List<string> result = all_ways(pair.Key, end, path, pair.Value);
                if (result.Count != 0)
                    pathes.AddRange(result);
            }
            return pathes;
        }
        public int shortest_path(char start, char finish)
        {
            var previous = new Dictionary<char, char>();
            var distances = new Dictionary<char, int>();
            var nodes = new List<char>();
 
            List<char> path = null;
 
            foreach (var vertex in vertices)
            {
                if (vertex.Key == start)
                {
                    distances[vertex.Key] = 0;
                }
                else
                {
                    distances[vertex.Key] = int.MaxValue;
                }
 
                nodes.Add(vertex.Key);
            }
 
            while (nodes.Count != 0)
            {
                nodes.Sort((x, y) => distances[x] - distances[y]);
 
                var smallest = nodes[0];
                nodes.Remove(smallest);
 
                if (smallest == finish)
                {
                    path = new List<char>();
                    while (previous.ContainsKey(smallest))
                    {
                        path.Add(smallest);
                        smallest = previous[smallest];
                    }
 
                    break;
                }
 
                if (distances[smallest] == int.MaxValue)
                {
                    break;
                }
 
                foreach (var neighbor in vertices[smallest])
                {
                    var alt = distances[smallest] + neighbor.Value;
                    if (alt < distances[neighbor.Key])
                    {
                        distances[neighbor.Key] = alt;
                        previous[neighbor.Key] = smallest;
                    }
                }
            }
            if (path.Count > 0)
                return distances[path[0]];
            else
                return 0;
        }
    }

Решение задачи: «Ошибка CS1503 Аргумент 1: не удается преобразовать из "string" в "char"»

textual
Листинг программы
Convert.ToString(твоя переменная);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы