C# 动态生成大数据

发布时间:2024年01月15日

直接上代码:

?1、

?public ?void Test()
? ? ? ? {
? ? ? ? ? ? var dogs = new ConcurrentDictionary<int, dog>();//字典 线程安全
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 并行生成1000万条数据条数据
? ? ? ? ? ? Parallel.For(0, 10_000_000, (i) =>
? ? ? ? ? ? {
? ? ? ? ? ? ? ? var single = new dog
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? Id = i,
? ? ? ? ? ? ? ? ? ? Name = "name" + i,
? ? ? ? ? ? ? ? ? ? Year = new Random().Next(1, 20),//狗狗活的年数
? ? ? ? ? ? ? ? ? ? CreateTime = DateTime.Now.AddSeconds(i)
? ? ? ? ? ? ? ? };
? ? ? ? ? ? ? ? dogs.TryAdd(i, single);//写入到dogs字典里
? ? ? ? ? ? });
? ? ? ? ? ? Console.WriteLine("数据成功写入"+dogs.Count/10000+"万条");
? ? ? ? ? ? Console.WriteLine("数据已生成");

? ? ? ? ? ? // PLINQ查询
? ? ? ? ? ? var watch = new Stopwatch();
? ? ? ? ? ? watch.Start();
? ? ? ? ? ? var query1 = (from n in dogs.Values.AsParallel()//这里标志用了plinq
? ? ? ? ? ? ? ? ? ? ? ? ? where n.Year > 5 && n.Year < 12
? ? ? ? ? ? ? ? ? ? ? ? ? select n).ToList();
? ? ? ? ? ? watch.Stop();
? ? ? ? ? ? Console.WriteLine("PLINQ耗时:{0}", watch.ElapsedMilliseconds);
? ? ? ? ? ? // LINQ查询
? ? ? ? ? ? watch.Restart();
? ? ? ? ? ? var query2 = (from n in dogs.Values
? ? ? ? ? ? ? ? ? ? ? ? ? where n.Year > 5 && n.Year < 12
? ? ? ? ? ? ? ? ? ? ? ? ? select n).ToList();

? ? ? ? ? ? watch.Stop();
? ? ? ? ? ? Console.WriteLine("LINQ耗时:{0}", watch.ElapsedMilliseconds);
? ? ? ? }

2、public class dog
? ? {
? ? ? ? public int Id { get; set; }
? ? ? ? public string Name { get; set; }
? ? ? ? public int Year { get; set; }
? ? ? ? public DateTime CreateTime { get; set; }
? ? }

文章来源:https://blog.csdn.net/vbloveshllm/article/details/135599931
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。