58问答库

  • 首页
58问答库 > c#list<t>2个查找相同的合并

c#list<t>2个查找相同的合并

2025-04-27 15:11:03
推荐回答(1个)
回答(1):


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 dic1 = list1.ToDictionary(m => m.id, m => m);

Dictionary dic2 = list2.ToDictionary(m => m.id, m => m);

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; }

}

}

}


不到一秒,希望采纳。。。。

相关问答
最新问答
我考织金县教师考试进面试了,请问在贵阳选哪家培训机构好些?
热镀锌槽钢规格[10 L=6000 什么意思
太阳能电池硅片有辐射吗
汉口火车站到鄂州国税局有多少公里
如何在没有密码的情况下,看别人的QQ相册。
新城时代那个美女收入如何?
编程猫好不好呀?给孩子报过吗
北京力众华援与苏宁易购阳光包是什么关系?
异地黄洲医保卡能在市一医院住院使用吗??
下图中左图为我国某河流河道示意图,甲为一河心沙洲,右图为该洲一年内面积变化统计图,读图完成下列问题
返回顶部

内容全部来源于网络收集,如有侵权,请联系网站删除:QQ:24596024