在visual C#中,我正在实现的按钮需要读取.txt文件并检查文本文件中的每一行是否以某个字符结束,如果是,则在该行上取名称并将其打印到一个消息框。到目前为止,我已设法使条件检查行的末尾是否存在指定字符,但无法获取其中的名称,因为它位于两组数字之间。该名称就在该行的第一个字符之后,就在一组数字开始之前,因为它们是用户的ID。
这是我目前在按钮内的代码:
private void button1_Click(object sender, EventArgs e)
{
string line, lastchar;
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader(@"rato.txt");
while ((line = file.ReadLine()) != null)
{
lastchar= line.Substring(line.Length - 1, 1);
if (lastchar== "2") MessageBox.Show("Prints the name of the user here");
}
file.Close();
}
这是文本文件:
1Paulo111.111.111-11addaqwe2
2Rambo425.433-628-43ererssd3
1Momba111.111.111-11asdsad4432
1Mauricio111.111.111-22wwcssfd2
1Saulo111.111.111-11qwe1231231
因此按钮需要检查当前行是否以'2'结尾并在行中打印名称。例如,第一行中的名称是 Paulo ,当它以“2”结尾时,“Paulo”将打印到消息框,就像第三行和第四行一样。否则,它会跳到下一行。 然后将其打印在消息框中:“ Paulo,Momba,Mauricio。”
我该怎么做?
答案 0 :(得分:2)
var names = File.ReadLines(filename)
.Where(line => line.EndsWith("2"))
.Select(line => Regex.Match(line, @"\p{L}+").Value)
.ToList();
这将返回包含Paulo, Momba, Mauricio.
PS: \p{L}
:任何unicode字母。