【问题标题】:How to add the alternate file name to the list(2 List) in C#如何在 C# 中将备用文件名添加到列表(2 列表)中
【发布时间】:2020-01-09 09:43:16
【问题描述】:

我在变量 Files var Files 中有文件列表

DirectoryInfo info = new DirectoryInfo(dir);

var Files = info
  .GetFiles("*.txt")
  .Where(p => p.LastWriteTime.Date == DateTime.Today);

例如,如果我在变量文件中有 500 个文件名。我需要将备用文件名添加到列表中。在for eachloop 中,我需要像这样在 container1 中添加第一个文件,在 container2 中添加第二个文件。

列表 1: Container1(它会像这样添加第1、3、5个文件)

列表2: Container2(它会像这样添加第2、4、6个文件)

【问题讨论】:

    标签: c# list


    【解决方案1】:

    您可以使用Linq,并将GroupBy intial Files 分组:

    var Alternated = Files
      .Select((name, index) => new {name, index})
      .GroupBy(item => item.index % 2, item => item.name)
      .Select(group => group.ToList())
      .ToArray();
    
    var list1 = Alternated[0];
    var list2 = Alternated[1];
    

    或循环(无 Linq 解决方案)

    var list1 = new List<FileInfo>();
    var list2 = new List<FileInfo>();
    
    var currentList = list1;
    
    foreach (var item in Files) {
      currentList.Add(item);
    
      currentList = currentList == list1 ? list2 : list1;
    }
    

    【讨论】:

      【解决方案2】:

      您可以简单地尝试一下。任何空检查等异常处理都被忽略了。

      var Files = info.GetFiles("*.txt")
              .Where(p => p.LastWriteTime.Date == DateTime.Today);
      
      var list1 = Files.Where((file,index) => index % 2 != 0);
      var list2 = Files.Where((file,index) => index % 2 == 0);
      

      【讨论】:

      • 这里'c'定义?
      • 只是将其更改为更相关
      猜你喜欢
      • 2020-01-14
      • 1970-01-01
      • 2011-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      相关资源
      最近更新 更多