我做一个小项目来做频率词,结果将显示在包含两列的列表视图中,并将列表视图的项目保存在文本文件中。
我有此代码:
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog o = new OpenFileDialog();
o.ShowDialog();
StreamReader read = new StreamReader(File.OpenRead(o.FileName));
richTextBox1.Text = read.ReadToEnd();
read.Dispose();
}
private void button3_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "Text Files(*txt)|*txt";
save.ShowDialog();
using (StreamWriter w = new StreamWriter(File.Create(save.FileName)))
{
foreach (ListView m in listView1.Items)
{
w.WriteLine("{0}{1}", m.Items[0].Text + "\t" + m.Items[1].Text);
}
w.Dispose();
}
}
private void button2_Click(object sender, EventArgs e)
{
string inputString = richTextBox1.Text;
string st = richTextBox1.Text;
List<string> wordList = inputString.Split(' ').ToList();
string[] stripwords = new string[] { "or","in","at" };
foreach (string word in stripwords)
{
while (wordList.Contains(word))
{
wordList.Remove(word);
}
}
Dictionary<string, int> dictionary = new Dictionary<string, int>();
foreach (string word in wordList)
{
if (word.Length >= 3)
{
if (dictionary.ContainsKey(word))
{
dictionary[word]++;
}
else
{
dictionary[word] = 1;
}
}
}
// Set the view to show details.
listView1.View = View.Details;
// Display grid lines.
listView1.GridLines = true;
// Sort the items in the list in ascending order.
listView1.Sorting = SortOrder.Ascending;
listView1.Columns.Add("words",66, HorizontalAlignment.Left);
listView1.Columns.Add("freq 2", -2, HorizontalAlignment.Left);
foreach (KeyValuePair<string, int> item in dictionary)
{
ListViewItem i = new ListViewItem(item.Key);
i.SubItems.Add(item.Value.ToString());
listView1.Items.Add(i);
}
}
当我执行streamwriter的代码时,会出现以下问题:
无法将类型为
'System.Windows.Forms.ListViewItem'
的对象转换为类型为'System.Windows.Forms.ListView'
的对象。
如果有人可以帮助我解决此问题,我将不胜感激
谢谢。