using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
List list1 = Init(true);
List list2 = Init(false);
var sw = Stopwatch.StartNew();
Dictionary
Dictionary
ConcurrentBag results = new ConcurrentBag();
Parallel.ForEach(dic1,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
item =>
{
results.Add(new A { id = item.Key, name = item.Value.name, level = dic2[item.Key].level });
});
sw.Stop();
Console.WriteLine("用时:{0}毫秒", sw.ElapsedMilliseconds.ToString());
List list3 = results.OrderBy(m => m.id).ToList();
for (int i = 0; i < 10; i++)
{
Console.WriteLine($"id:{list3[i].id} name:{list3[i].name} level:{list3[i].level}");
}
Console.ReadKey();
}
private static List Init(bool isFirstList)
{
List list = new List();
for (int i = 0; i < 1000000; i++)
{
if (isFirstList)
list.Add(new A { id = i, name = $"name_{i.ToString()}" });
else
list.Add(new A { id = i, level = $"level_{i.ToString()}" });
}
return list;
}
public class A
{
public int id { get; set; }
public string name { get; set; }
public string level { get; set; }
}
}
}
不到一秒,希望采纳。。。。