我无法单击列表框项目(列表框中的项目是文件夹中的 .txt 文件)并显示 .txt 文件中的值。 .txt 文件中的值均用“,”分隔,我希望每个拆分项目显示在表单的标签中。 我的文件路径是:System.AppDomain.CurrentDomain.BaseDirectory +“data” 我的 .txt 文件名是列表框中所选项目的名称。
我对应该发生的事情有一个基本的想法,但我不知道如何用代码表达这一点。 我的代码:
private void custList_MouseClick(object sender, MouseEventArgs e)
{
string foldr = System.AppDomain.CurrentDomain.BaseDirectory + "data";
string file = custList.SelectedIndex.ToString();
}
在我继续回答这个问题之前,请阅读如何提问。这将帮助您更好地了解这个社区并提出更好的问题(以获得更好的支持)。 接下来,做一些研究。乍一看,你好像在要求别人帮你做作业。无论如何,我不是来对你严厉的。我会向你指出一些事情。尝试理解它们并利用它们。
请注意,尽管看起来如此,但我不喜欢用勺子喂食,所以要真诚并进行研究。
让我们从您的文本文件开始。正如您所提到的,它包含值。 C# 是一种多功能且成熟的语言,它具有许多预先构建的函数、方法、类来帮助提升您的编程体验。这样的方法是 ReadAllText,它是
File
类的一部分。用最简单的话来说,此方法打开一个文本文件,读取它,返回它的值。此方法的使用示例如下:
string TextFromFile = File.ReadAllText(File_Path_Goes_Here);
继续...您的文本文件有多个值用逗号(,)分隔。在这种情况下,每个值都需要在检索或显示时作为单独的值读取。所以,你想要一个
List
的价值观,故事结束了。在 C# 中,您有多种“通用列表”可供使用。由于文本文件中的values是简单的字符串,因此您可以在这方面使用List<string>
。 List<string>
的基本用法示例是:List<string> TestList1 = new List<string>();
TestList1.Add("First Value"); TestList1.Add("Second Value");
///or
List<string> TestList1 = new List<string>(){ "First Value", "Second Value" };
在您的具体情况下,
File.ReadAllLines
值得一个例子。该方法打开一个文本文件,读取它,然后关闭它。当然,它返回从文本文件读取的值,作为数组。因此,当将值传递给通用列表时,您可以简单地使用此方法。示例:
...... new List<string>(File.ReadAllLines(Path_Of_File_Goes_Here));
这里唯一的问题是文本文件中的值在一行中(可能)
并且 用逗号分隔。那么,您认为这里应该做什么? ReadAllText
还是
ReadAllLines
?我会把它留给你。从文件中读取值后,我们可以使用
Split
函数根据每次出现的逗号 (,) 来分割值。一个简单的例子:
List<string> NameList = "Josh,Riley".Split(',').ToList<string>();
最后但并非最不重要的一点是,问题的标题似乎与帖子本身没有任何关系,您可以看一下:控制点击事件ListBox.GetItemText提示:
SelectedItem
类的
ListBox
属性返回或设置列表框的选定项目。 我希望这对您有所帮助。请注意上面提到的所有内容。一开始可能有点难以跟进,但请记住,一致性是缺乏想象力的标志
。 ....是的,这不是我的原话。明白了!
要从文件中获取值:
public string[] GetValues()
{
string[] values;
using(StreamReader sr = new StreamReader(Path.Combine(foldr, file))
{
string text = sr.ReadToEnd();
values = text.Split(',');
}
return values;
}
然后你可以使用数组来显示它们:
public void Main()
{
string[] values = GetValues();
foreach(var value in values)
{
Console.WriteLine(value);
}
}