-1
我试图将文本文件转换为图形,但是当我尝试使用值函数(下面)打印字典中的值时,它会打印类似于“System.Collections.Generic”的内容。 List'1 [System.String]“!有人能告诉我我的代码有什么问题吗?! This is the format of the text file将文本文件转换为图形
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace Demo
{
public class Graph
{
Dictionary<string, List<string>> st;
static int count;
static int count1;
public Graph()
{
st = new Dictionary<string, List<string>>();
}
public Graph(string filename, string delimeter)
{
st = new Dictionary<string, List<string>>();
FileStream fs = new FileStream(filename, FileMode.Open);
StreamReader sr = new StreamReader(fs);
while(sr.Peek()!=-1)
{
string line = sr.ReadLine();
char r;
r = Convert.ToChar(delimeter);
string [] names = line.Split(r);
for(int i=1;i<names.Length;i++)
{
addEdge(names[1], names[i]);
}
}
sr.Close();
}
public void addEdge(string a, string b)
{
if(!st.ContainsKey(a))
{
addVertex(a);
}
if(!st.ContainsKey(b))
{
addVertex(b);
}
st[a].Add(b);
st[b].Add(a);
count1++;
}
public void addVertex(string v)
{
isContainV(v);
st.Add(v, new List<string>());
count++;
}
public int vertexcount()
{
return count;
}
public int edgeCount()
{
return count1;
}
public void edge()
{
foreach (string key in st.Keys)
{
Console.WriteLine(key);
}
}
public void values()
{
foreach (List<string> temp in st.Values)
{
Console.WriteLine(temp);
}
}
public bool isContainV(string v)
{
if(!st.ContainsKey(v))
{
return false;
}
return true;
}
public IEnumerable<string> adjacentTo(string v)
{
return st[v];
}
}
}
谢谢!我有一个问题,但如果我打算打印整个字典的函数,是否有可能循环每个键值对? – brokleyscoding
是的,看我的编辑。 – EricM
非常感谢! – brokleyscoding