首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Except移除元素

用Except移除元素
EN

Stack Overflow用户
提问于 2013-08-23 16:32:37
回答 1查看 50关注 0票数 2

下面我有一个方法,应该删除文件的所有版本,但最新版本除外。我的Except调用没有产生我期望的结果,在再次查看文档之后,我似乎无法理解为什么。为了进行调试,我已经将Except的LINQ查询移出了我的预期条件。当我将调试newest正确地设置为最近的日志文件时,在下一行执行toDelete仍然包含newest之后,为什么?我在这里错过了什么?所有相关代码如下。调用该方法时,将文件设置为日志名称的静态部分,然后该方法具有时间戳。这两种Where(x => x.Contains(file))的工作方式与我所期望的完全一样。

代码语言:javascript
复制
public static void CleanUpLocalCopies(string file)
{
    string[] localFiles = Directory.GetFiles(".\\");

    string newest = files.Where(x => x.Contains(file)).OrderByDescending(x => x).FirstOrDefault();
    var toDelete = localFiles.Where(x => x.Contains(file)).Except(new string[] { newest });

    foreach (string f in toDelete)
    {
        File.Delete(f);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-23 16:39:34

在本例中,您只需使用skip直接跳过第一个文件,并避免Except调用:

代码语言:javascript
复制
var toDelete = files.Where(x => x.Contains(file)).OrderByDescending(x => x).Skip(1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18407713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档