C# 在LINQ查询期间读取文件
我有一个简单的类,我想得到以下结果: (到目前为止都是正确的) 在我的类定义中,temp1=Name;temp2=idC# 在LINQ查询期间读取文件,c#,linq,class,enums,C#,Linq,Class,Enums,我有一个简单的类,我想得到以下结果: (到目前为止都是正确的) 在我的类定义中,temp1=Name;temp2=id public class Definitions { public string Name { get; set; } public string Id { get; set; } } class Program { static void Main() { ReadDefinitions(); } publ
public class Definitions
{
public string Name { get; set; }
public string Id { get; set; }
}
class Program
{
static void Main()
{
ReadDefinitions();
}
public static void ReadDefinitions()
{
var files = from name in Directory.EnumerateFiles(Settings.Folder)
from id in File.ReadLines(name).Skip(2).Take(1)
select new
{
temp1= Path.GetFileNameWithoutExtension(name),
temp2= id
};
foreach (var f in files)
{
Console.WriteLine(f.temp1);
Console.WriteLine(f.temp2);
}
foreach (var f in files)
{
Console.WriteLine(f.temp1);
Console.WriteLine(f.temp2);
}
}
}
我知道这对临时工来说很愚蠢,但我无法直接做到(
目标是:
- 读取包含数千个文件的目录
- 将名称放入定义中。名称
- 将每个文件的第3行放入Definitions.Id中
(我仍然需要修剪行的3个左字符和4个右字符,……但我可能会自己处理)如果理解正确,您只需要这样做
var files = from name in Directory.EnumerateFiles(Settings.Folder)
select new
{
temp1= Path.GetFileNameWithoutExtension(name),
temp2= File.ReadLines(name).Skip(2).First()
};
如果您想跳过临时内容,则可以:
var files = from name in Directory.EnumerateFiles(Settings.Folder)
select new Definitions
{
Name = Path.GetFileNameWithoutExtension(name),
Id = File.ReadLines(name).Skip(2).First()
};
File.ReadLines
很好。我想你已经想到了File.ReadAllLines
.naaah…..这是显而易见的。我想在我的类描述中包含它。名称和描述。Id,并在我的主程序中访问它。范是对的,我把它和ReadAllLines混淆了。所以你的代码没问题。我现在就结束
var files = from name in Directory.EnumerateFiles(Settings.Folder)
select new Definitions
{
Name = Path.GetFileNameWithoutExtension(name),
Id = File.ReadLines(name).Skip(2).First()
};