我已经编码了一个聊天程序巨头,到目前为止,已经设法克服了所有阻止我的障碍,甚至我已经想过几天的障碍,但是我可以't我四处走动。因此,我正在使用前缀系统,将目标名称输入到目标文本框中,然后在前缀文本框中输入前缀名称,然后单击前缀按钮。我已经写了用" |"的文本文件编写用户名并选择的前缀。分离它。这样:
void writePrefixes(string target, string prefixs)
{
TextWriter twp = new StreamWriter("prefix.txt");
twp.WriteLine(target + "|" + prefixs + Environment.NewLine);
twp.Close();
}
现在,每次服务器启动时,它都会导入文本文件并使用foreach循环将每个循环加载到列表中。现在,每次客户端发送一条消息时,我希望它是用户名在列表中的"目标"中检查,然后修改了用户名以在之前具有前缀。我怎样才能做到这一点?提前致谢!对不起一个漫长的问题,我是新来的,如果太长了,请告诉我!
,因此您有一个具有这样数据的文本文件:
用户1 | pre1
user2 | pre2
等。
您正在将这些字符串加载到平面列表中?我认为这样的事情将是最好的选择:
var userList = new List<string>();
userList.Add("TestUser1|pre1");
userList.Add("TestUser2|pre2");
foreach (var user in userList)
{
var userParts = user.Split(new[] { '|' });
var userName = userParts[0];
var prefix = userParts[1];
Console.WriteLine(string.Format("{0}{1}", prefix, userName));
}
希望我能正确理解您。
,因此您基本上有两个列表:一个带有用户名的列表,一个带有前缀,两个字符串。我想您将必须存储输入的每个前缀,并由前缀未使用的字符分开。
//go through file
var entry = file.ReadLine().Split('|');
userList.Add(entry[0]);
prefixList.Add(entry[1]);
//when you want to go for the prefix
var idx = userList.IndexOf(username);
var allPrefix = prefixList[idx].Split("seperator");
var newPrefix = allPrefix[prefixList[idx].Count - 2];
//yes you have to make sure the index is correct, you dont leave bounderies etc. but I hope you get the idea
您还必须确保从列表中删除之前使用的索引以保存。