c #list ltt gt2 encuentra la misma combinación.
Utilice el sistema. recolectar. Concurrencia;
Utilizar el sistema. recolectar. Genérico;
Uso del sistema. Diagnóstico;
Utilizar el sistema. Linq
Usa el sistema. hilo. Tarea;
Aplicación de consola de espacio de nombres1
{
Plan de clase
{
static void Main(string[ ] args)
{
Lista ltA gtlist 1 = Init(true);
Lista ltA gtlist 2 = Init(false); >var sw = cronómetro. start new();
Diccionario ltint, A gtdic1 = list1. ToDictionary(m = gt; m.id, m = gtm);
Diccionario ltint, A gtdic2 = list2. ToDictionary(m = gt; m.id, m = gtm);
Paquete concurrente ltA gt resultado = nuevo paquete concurrente lt. A gt();
Paralelo. ForEach(dic1,
Nueva opción de paralelismo { MaxDegreeOfParallelism = 4 },
item = gt
{
Resultado. Agregar (nuevo A { id = elemento.Clave, nombre = elemento Valor.nombre, nivel = dic2[elemento.nivel});
SW. stop();
Consola. WriteLine("Tiempo: {0} milisegundos", software. Milisegundos transcurridos. tostring());
Lista ltA gtlist3 = resultado. ordenar por (m = gt; m.id). to list();
for(int I = 0;i lt10;i)
{
Consola. WriteLine($"id: {list3[i].id} nombre: {list3[i].name} nivel: {list3[i].level}"); p>Consola. read key();
}
Lista estática privada ltA gtInit(bool isFirstList)
{
Lista ltA gtlist = nueva lista ltA gt();
for(int I = 0; i lt1000000; i)
{
if (isFirstList)
lista. Add(new A { id = i, nombre = $ " nombre _ { I . ToString()} " });
Otro
Lista.
Add(new A { id = i, nivel = $ " nivel _ { I . ToString()} " });
}
Orden de devolución;
}
Clase pública A
{
ID int pública { obtener configuración;}
Nombre de cadena pública { obtener configuración }
Nivel de cadena pública { get settings }
}
}
}
No disponible para un En segundo lugar, espero adoptarlo. . . .