我的文件如下所示
aaaaaaa
ID 12345
David
bbbbbbbbbbb
我必须将人的身份和姓名分开
我的输出应该像
12345
David
有人可以帮忙吗?提前谢谢。
答案 0 :(得分:1)
以下代码将帮助您解决此特定问题,试试这个并告诉我您是否遇到任何困难:
var linesInFile = System.IO.File.ReadAllLines(@"C:\Users\Vishnuraj\Desktop\sample.txt").ToList();
var lineOfID = linesInFile.FirstOrDefault(x => x.ToLower().StartsWith("id"));
if (!String.IsNullOrEmpty(lineOfID))
{
int indexOfID = linesInFile.IndexOf(lineOfID);
if (indexOfID < linesInFile.Count - 1)
{
string nameOfPerson = linesInFile[indexOfID + 1]; // will be "David"
string personId = lineOfID.Substring(3); // will be 12345
}
}
答案 1 :(得分:0)
您可以像这样获取您的ID和名称:
string[]file= File.ReadAllLines(filePath); //Read your text file this way.
int id = 1; //first id will be found at index 1 as mentioned by you.
for (int i = 0; i < file.Length; i++)
{
if (i == id)
{
//here is your id & Name
Console.WriteLine(file[i]);
if (file[id + 1] != null)//checking whether next index if null or not.
Console.WriteLine(file[id + 1]);
id += 4;//incremented as you said, it always be there in a sequence
}
}
您可以进一步优化此代码,例如将数组转换为List
并应用LINQ
等...
答案 2 :(得分:0)
如果您NuGet“System.Interactive”,那么您可以这样做:
var lines =
File
.ReadLines(fileName)
.Skip(1)
.Take(2)
.SelectMany(x => x.Split(' ').TakeLast(1))
.ToArray();
var id = lines[0];
var name = lines[1];