【发布时间】:2016-06-28 05:16:07
【问题描述】:
My class:
public class Definitions
{
public string Name { get; set; }
public string Id { get; set; }
}
到目前为止,我做到了: 如果我正确理解我的结果 定义.名称..和 定义.Id
都保存在一个列表对象中!? (这就是我想要得到的,而且它有效,因为我可以使用 foreach 访问它)
public static void ReadDefinitions2()
{
var files = (from name in Directory.EnumerateFiles(Settings.NotecadddyDefinitionsFolder)
select new Definitions
{
Name = Path.GetFileNameWithoutExtension(name),
Id = File.ReadLines(name).Skip(2).First()
}).ToList();
foreach (Definitions f in files)
{
Console.WriteLine(f.Name);
Console.WriteLine(f.Id);
}
}
++1。题: f从哪里来??? 我从网上获得了部分 sn-p,所以我不是 100% 真正理解它。
++2.问题: 为什么我不能使用
Id = File.ReadLines(name).Skip(2).Take(1)
代替:
Id = File.ReadLines(name).Skip(2).First()
错误: Der Typ "System.Collections.Generic.IEnumerable" kann nicht implizit in "string" konvertiert werden。 我知道 First 已经是最佳的,但我只是想了解,因为对我来说它是一样的!?拿1=!先拿????
++3.问题:我的列表对象/变量是什么? 文件的定义?
我对 3.000 个文件进行了一些性能测试,时间为 25KB~130 毫秒...在 VS 中。(调试/发布=相同) 看起来不错。 现在当我不添加 .ToList();并且不做“foreach”,然后时间=0ms。 (如果我理解正确,它基本上什么都不做,因为没有结果) - 使用 ".ToList()" 它总是 130 毫秒,无论是否使用 foreach。
那么我的结果/变量/列表到底是什么? .ToList() 有什么作用,因为我可以使用 foreach 处理我的列表?
++4.问题:(相关)
我是否有一个对象定义 f.Name AND 定义 f.Id 在某种数组/列表中?
++5.问题: 如何将它返回到我的主程序? 我会一直使用这个列表。这是我需要的那个对象/类的唯一实例。
尝试了很多东西..没有任何效果: 返回 xxxx;?? 以及如何启动该方法?请完整示例:
static void Main()
{
Definitions=ReadDefinitions2();
}
public static ReadDefinitions2()
{
return Definitions Object(Name and ID):
}
【问题讨论】:
标签: c# performance linq foreach return