C# 如何随机读取一个文件夹下的多个文件内容?
2个回答
展开全部
获取那个文件夹下的所有文件,用洗牌算法洗一遍,根据数量生成一个随机数n,读取前n个文件的内容
using System;
using System.IO;
using System.Linq;
class Program {
static Random rand = new Random();
static T[] FisherYatesShuffle<T>(T[] arr, int n) {
for (int i = 0; i < n; i++) {
int j = rand.Next(i, n);
(arr[i], arr[j]) = (arr[j], arr[i]);
}
return arr.AsSpan().Slice(0, n).ToArray();
}
static void Main() {
string dirname = ".";
var filenames = Directory.GetFiles(dirname, "*.txt");
int n = rand.Next(filenames.Length);
var result = FisherYatesShuffle(filenames, n)
.SelectMany(f => File.ReadAllLines(f))
.Select(line => line.Split(':')[1].Split(','))
.Aggregate((crrnt, rslt) => crrnt.Intersect(rslt).ToArray());
File.WriteAllText("result.txt", string.Join(" ", result));
}
}
2020-02-17
展开全部
随机算法()返回0或者1,0不读取,1读取
random(0,1)
循环文件夹文件for/foreach
调用随机算法如果是1就读取,0就继续循环
random(0,1)
循环文件夹文件for/foreach
调用随机算法如果是1就读取,0就继续循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |