Как добавить альтернативное имя файла в список (2 List) в C# - PullRequest
0 голосов
/ 09 января 2020

У меня есть список файлов в переменной Files var Files

DirectoryInfo info = new DirectoryInfo(dir);

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

Пример, если у меня есть 500 имен файлов в переменных файлах. Мне нужно добавить альтернативное имя файла в список. Внутри for each l oop мне нужно добавить первый файл в container1 и второй файл в container2 следующим образом.

List1: Container1 (он добавит 1-й, 3-й, 5-й файл вроде этого)

List2: Container2 (он добавит 2-й, 4-й, 6-й файл следующим образом)

Ответы [ 2 ]

1 голос
/ 09 января 2020

Вы можете использовать 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];

Или l oop (без решения 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;
}
1 голос
/ 09 января 2020

вы можете просто попробовать это. Любые нулевые проверки и c обработка исключений исключена.

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...