static List<string>FindFile(string Name){
List<string> r =newList<string>();string[] strArray = File.ReadAllLines(Name);//using System.IO中的方法,将文件以字符串数组形式返回foreach(var s in strArray){//不是很会用list的API,遂直接暴力循环录入了(别学
r.Add(s);}return r;}//读取一个文件,将其以字符串list返回
检测当前数据中有无某条数据写了俩个方法
staticboolFindString(string s, List<string> ls){foreach(var str in ls){if(str == s){returntrue;}}returnfalse;}//检测list里有无sstaticboolFindFileString(string s){for(int i =1;;i++){string str ="数据/数据"+i+".txt";FileInfo fileInfo =newFileInfo(str);if(fileInfo.Exists ==false){break;}else{if(FindString(s,FindFile(str)))//这边就用了之前写的那个读取方法{returntrue;}}}returnfalse;}//检测所有数据中有无s
classProgram{staticvoidMain(string[] args){bool b =true;string s;int o =1;while(b){Directory();
o = Convert.ToInt32(Console.ReadLine());switch(o){case1:
System.Console.Clear();//清屏函数Display();break;case2:
Console.WriteLine("请输入要查询的数据并回车");
s = Console.ReadLine();
System.Console.Clear();if(FindFileString(s)){
Console.WriteLine("当前数据中有这一条");}else{
Console.WriteLine("当前数据中无这一条");}break;case3:
Console.WriteLine("请输入要录入的数据并回车");
s = Console.ReadLine();
System.Console.Clear();AddFileString2(s);break;case4:
Console.WriteLine("请输入要删除的数据并回车");
s = Console.ReadLine();
System.Console.Clear();DeleteString(s);break;case5:
Console.WriteLine("已退出程序,再见");
b =false;break;default:
Console.WriteLine("请输入合法指令");break;}}}staticvoidDirectory(){
Console.WriteLine("-------------指令目录-------------");
Console.WriteLine("1.显示当前已有的所有数据");
Console.WriteLine("2.在当前已有数据中查询一条数据");
Console.WriteLine("3.录入一条新的数据");
Console.WriteLine("4.删除一条数据");
Console.WriteLine("5.退出系统");
Console.WriteLine("----------输入指令后回车----------");}//打印目录static List<string>FindFile(string Name){
List<string> r =newList<string>();string[] strArray = File.ReadAllLines(Name);foreach(var s in strArray){
r.Add(s);}return r;}//读取一个文件,将其以字符串list返回staticvoidWriteFile(List<string> ls,string Name){string[] strArray = ls.ToArray();
File.WriteAllLines(Name, strArray);}//将一个字符串list写入一个文件staticboolFindString(string s, List<string> ls){foreach(var str in ls){if(str == s){returntrue;}}returnfalse;}//检测list里有无sstaticboolFindFileString(string s){for(int i =1;;i++){string str ="数据/数据"+i+".txt";FileInfo fileInfo =newFileInfo(str);if(fileInfo.Exists ==false){break;}else{if(FindString(s,FindFile(str))){returntrue;}}}returnfalse;}//检测所有数据中有无sstaticvoidAddFileString1(string s){int i =1;for(;; i++){string str ="数据/数据"+ i +".txt";FileInfo fileInfo =newFileInfo(str);if(fileInfo.Exists ==false){break;}}string st ="数据/数据"+(i-1)+".txt";
List<string> ls =FindFile(st);if(ls.Count>=1000){
ls =newList<string>();
ls.Add(s);
st ="数据/数据"+ i +".txt";}else{
ls.Add(s);}WriteFile(ls, st);}//将字符串s写入数据中,每个文件限制1000条staticvoidAddFileString2(string s){if(FindFileString(s)){
Console.WriteLine("数据:"+ s +" 已存在");}else{AddFileString1(s);
Console.WriteLine("数据:"+ s +" 成功录入");}}//将字符串s写入数据中,会检测是否重复,若重复则不写入staticvoidDeleteString(string s){if(FindFileString(s)){for(int i =1;; i++){string str ="数据/数据"+ i +".txt";FileInfo fileInfo =newFileInfo(str);if(fileInfo.Exists ==false){break;}else{
List<string> ls =FindFile(str);if(ls.Remove(s)){
Console.WriteLine("数据已删除");}WriteFile(ls, str);}}}else{
Console.WriteLine("找不到这个数据");}}//从数据中删除sstaticvoidDisplay(){for(int i =1;; i++){string str ="数据/数据"+ i +".txt";FileInfo fileInfo =newFileInfo(str);if(fileInfo.Exists ==false){break;}else{
List<string> ls =FindFile(str);foreach(var s in ls){
Console.WriteLine(s);}}}}//打印现有的所有数据}