当前位置: 首页 > news >正文

网站互点可以自己点么珠海品牌网站制作服务

网站互点可以自己点么,珠海品牌网站制作服务,杭州 商城网站开发,湖北建设企业网站价格C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序,并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息,请参阅该示例。 Kur…

C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序,并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息,请参阅该示例。

Kuru 发表了一条评论,称 LINQ 更简单,可读性更强。此示例比较了原始代码和两种 LINQ 方法。

第一种 LINQ 方法使用 LINQ 从目录中选择文件并对其进行排序。然后像以前一样循环遍历排序后的列表,以查看哪些文件位于哪个目录中。以下代码显示了此方法如何使用 LINQ 选择文件。

// Use LINQ twice to compare the files in each directory.
private void Compare_LinqTwice(string dir1, string dir2)
{// Get sorted lists of files in the directories.DirectoryInfo dir1_info = new DirectoryInfo(dir1);var dir1_query =from FileInfo file_info in dir1_info.GetFiles()orderby file_info.Nameselect file_info.Name;string[] file_names1 = dir1_query.ToArray();DirectoryInfo dir2_info = new DirectoryInfo(dir2);var dir2_query =from FileInfo file_info in dir2_info.GetFiles()orderby file_info.Nameselect file_info.Name;string[] file_names2 = dir2_query.ToArray();// Compare....
}

此代码为第一个目录创建了一个DirectoryInfo对象。LINQ 查询使用该对象的GetFiles方法获取表示目录文件的FileInfo对象的可枚举列表。它按FileInfo对象的名称对结果进行排序,然后选择这些名称。然后,程序调用查询的ToArray方法将结果复制到字符串数组中。

代码重复这些步骤以获得包含第二个目录的文件名的排序数组。然后像上一个示例一样比较这两个数组。

以下代码展示了第三种方法。(Kuru 建议的方法。)

// Use LINQ joins to compare the files in each directory.
private void Compare_LinqJoins(string dir1, string dir2)
{// Get sorted lists of files in the directories.DirectoryInfo dir1_info = new DirectoryInfo(dir1);var dir1_query =from FileInfo file_info in dir1_info.GetFiles()//orderby file_info.Nameselect file_info.Name;string[] file_names1 = dir1_query.ToArray();DirectoryInfo dir2_info = new DirectoryInfo(dir2);var dir2_query =from FileInfo file_info in dir2_info.GetFiles()//orderby file_info.Nameselect file_info.Name;string[] file_names2 = dir2_query.ToArray();// Compare.var dir1_only_query =from string file_name in file_names1where (!file_names2.Contains(file_name))select file_name;List<string> dir1_only = dir1_only_query.ToList();var dir2_only_query =from string file_name in file_names2where (!file_names1.Contains(file_name))select file_name;List<string> dir2_only = dir2_only_query.ToList();var both_query =from string file_name in file_names1where (file_names2.Contains(file_name))select file_name;List<string> both = both_query.ToList();
}

此方法使用DirectoryInfo对象和 LINQ 来获取包含目录文件的数组(如前所述)。此程序不再循环遍历名称数组,而是使用三个 LINQ 查询来选择仅存在于第一个目录中、仅存在于第二个目录中或同时存在于两个目录中的文件。

所有三种方法都将结果存储在List中,而不是像原始示例那样将结果显示在DataGridView中。该程序对每种方法运行 10 次试验,以获得足够有意义的时间。

如果你仔细看文章顶部的图片,你会发现原始方法是最快的。第二种使用 LINQ 选择文件的方法花费的时间大约长 50%。

第三种方法使用 LINQ 来确定哪些文件位于哪些目录中,耗时几乎是第一种方法的 10 倍。它当然更简单,而且您可能会发现它比第一种方法更容易阅读,但它要慢得多。

(我也尝试使用第三种方法,但最后三个 LINQ 查询从前两个查询中选择数据,而不是从文件名数组中选择数据。这样速度要慢得多。几分钟后我就等得不耐烦了,于是就停止了程序。)

例如结果:

http://www.yayakq.cn/news/279404/

相关文章:

  • 高端网站设计费用有api对接文档怎么做网站
  • 游戏网站代码太原网页设计师招聘信息
  • 郑州鹏之信网络科技有限公司seo发布专员招聘
  • 网页设计模板网站推荐常用的网页制作软件有
  • 建设400官方网站手工制作大全折纸
  • 辽宁模板网站建设公司wordpress移动端导航栏
  • 韩雪冬个人网站 北京企业网站营销的实现方式解读
  • 做外贸网站报价单网站建设实力宣传海报
  • 为企业开发网站seo外链工具源码
  • 建设银行信用卡被钓鱼网站骗了15000个人购买域名做企业网站
  • 网站商城系统wordpress 用户组
  • 网站开发发布孝感网站制作公司
  • 游戏是怎么做的视频网站有一个域名做网站
  • 高端建站服务商亚马逊云服务器
  • 小网站做几个关键词php网站建设论文答辩
  • 成都网站定制中心苏州诶茵诶公司网站
  • 做网盘搜索网站wordpress 首页被跳转
  • 网站开发应用价值开网店卖什么最赚钱
  • google永久免费服务器seo超级外链
  • 手机购物网站建设深圳市深度设计咨询有限公司
  • 网站建设与网页设计专业网站里面的图片做桌面不清晰度
  • 广州一起做网店网站官方网站建设相关职业岗位职责
  • 建站行业有哪些公司软件开发流程图名称
  • 怎么做自己的网站后台教程wordpress背景图如何设置
  • 用vuejs做的网站怎么根据视频链接找到网址
  • 网站内页关键词密度windows server 2008 网站配置
  • 网站制作公司 哪家好网站建设的知识和技能
  • 重庆营销网站wordpress公告插件
  • 上海注册公司核名网站电商网站更适合
  • 金花站长工具哈尔滨自助板建站