Dictionary<string, string>
using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading.Tasks;
using System.Threading;
namespace Test
{
class Program
{
static void Main()
{
Dictionary<string, string> dict = new Dictionary<string, string>();
for (int i = 0; i < 30; i++)
{
dict.Add(i.ToString(), i.ToString() + "__" + Guid.NewGuid());
}
Console.WriteLine(dict.Count);
if (dict.Count > 10)
{
//1
var removeList = dict.OrderBy(a => a.Key).Take(10); //.ToArray(); //必须要ToArray() 或 OrderBy() ...
foreach (var item in removeList)
{
Console.WriteLine("移除的键值:{0} == {1}", item.Key, item.Value);
dict.Remove(item.Key);
}
//2
var removeList2 = dict.Take(10).ToArray();
for (int i = 0; i < removeList2.Count(); i++)
{
Console.WriteLine("移除的键值:{0} == {1}", removeList2[i].Key, removeList2[i].Value);
dict.Remove(removeList2[i].Key);
}
}
Console.WriteLine(dict.Count);
foreach (var key in dict)
{
Console.WriteLine("剩下的键值:{0} == {1}", key.Key, key.Value);
}
Console.Read();
}
}
}
/*
30
移除的键值:0 == 0__c3f8ea43-04a4-4a8b-8a8d-48d628799d36
移除的键值:1 == 1__ff3f9abc-f809-433e-ae33-bd4e74bf3ecd
移除的键值:10 == 10__1fec41b1-d4dd-42b5-8958-ba1fc49803cb
移除的键值:11 == 11__8f504987-8732-4cec-b3a1-1999e910e3c4
移除的键值:12 == 12__e6d0b4ab-33bb-4dc7-96e1-b8bbb11846e1
移除的键值:13 == 13__bc240ecb-9cbe-43f7-8cf9-b6ccdf6b0f16
移除的键值:14 == 14__bfdd5576-4e46-4d37-ba43-cf25fa02f3e1
移除的键值:15 == 15__f9a8b807-339e-47bd-bdc5-1aeec89bba5b
移除的键值:16 == 16__cb38da42-05bf-4c93-a720-2f132ef48302
移除的键值:17 == 17__753f5c8a-f280-4020-b094-7e57613f45eb
移除的键值:2 == 2__3835e037-9013-43c6-98a2-3cb4340c0ef2
移除的键值:3 == 3__210a971a-bd17-4abe-b99e-ae02aafc56c8
移除的键值:4 == 4__4883283b-8ad8-45b3-902d-9df6005fefd3
移除的键值:5 == 5__86eb37d1-5a17-4a59-b330-68e64b95628e
移除的键值:6 == 6__1dc5af1b-afd8-4f6c-b75b-4c07cab94de5
移除的键值:7 == 7__d6514187-c0f3-47b0-9ff4-deeb2034ad2d
移除的键值:8 == 8__9ab61a3e-a02f-4b21-912c-8748382bef54
移除的键值:9 == 9__5eef0d94-fba4-478a-9594-5700135e2bde
移除的键值:18 == 18__2fd7af48-cdb9-4cbb-bfc1-e63795ac915c
移除的键值:19 == 19__9ed7071a-bfc5-450d-bf56-97622b696110
10
剩下的键值:20 == 20__6fe09edf-c230-42b9-a86a-ceba0aec8430
剩下的键值:21 == 21__b7bcbde9-c2e7-4710-891f-0b14505591bd
剩下的键值:22 == 22__e3de603d-fcdd-4188-bd98-6acd97dd6ee7
剩下的键值:23 == 23__483b135e-334a-4bf0-aaf3-c44867ffd8c9
剩下的键值:24 == 24__c9341e11-70d6-4fa9-8bbb-2e7f9c51463e
剩下的键值:25 == 25__9d3e5c2e-947f-4cd7-b39f-13892235f21e
剩下的键值:26 == 26__03dcef1c-9ebb-406b-aba4-dcd5f6122ef1
剩下的键值:27 == 27__2464d6d8-1327-49bb-bf9e-c07fb10fd5ef
剩下的键值:28 == 28__03709c0a-1f06-40db-b119-9f0aefda289d
剩下的键值:29 == 29__e5f4c05d-70d9-450a-ba19-757988706227
*/
ConcurrentDictionary<string, string>
using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading.Tasks;
using System.Threading;
namespace Test
{
class Program
{
static void Main()
{
ConcurrentDictionary<string, string> dict = new ConcurrentDictionary<string, string>();
for (int i = 0; i < 30; i++)
{
dict.TryAdd(i.ToString(), i.ToString() + "__" + Guid.NewGuid());
}
Console.WriteLine(dict.Count);
if (dict.Count > 10)
{
string outString = "";
var removeList = dict.Take(10); // var removeList = dict.OrderBy(a => a.Key).Take(10);
foreach (var item in removeList)
{
Console.WriteLine("移除的键值:{0} == {1}", item.Key, item.Value);
dict.TryRemove(item.Key, out outString);
}
}
Console.WriteLine(dict.Count);
foreach (var key in dict)
{
Console.WriteLine("剩下的键值:{0} == {1}", key.Key, key.Value);
}
Console.Read();
}
}
}
/*
* dict.OrderBy(a => a.Key).Take(10)
30
移除的键值:0 == 0__30014ce1-3299-4b1c-ac69-d6c61c38086c
移除的键值:1 == 1__368f902a-8f6c-45fe-89dc-5888032c0ce2
移除的键值:10 == 10__68932504-8def-4790-9cf2-e13cc365dd9b
移除的键值:11 == 11__03c7b0e2-fc51-4943-8d7e-dc5d3678b7af
移除的键值:12 == 12__cf52ec1b-9d78-4621-8d3a-03ff6d8d9c2b
移除的键值:13 == 13__c8ff43e7-2fc1-43a5-9469-e28d9af57add
移除的键值:14 == 14__92d307b6-73e9-4d48-b385-057e922358e5
移除的键值:15 == 15__6461ffcf-6e8b-45c3-994e-259cfcb057bf
移除的键值:16 == 16__734f9358-1a02-431c-b37b-64cfa1da652e
移除的键值:17 == 17__31d5343a-dc6f-4122-8af8-a1d456925771
20
剩下的键值:21 == 21__9b9901a7-9733-4514-af99-07ff34086070
剩下的键值:27 == 27__21c368d8-000c-4e6b-a9f0-a4ef3a1627ee
剩下的键值:20 == 20__83003114-bdf9-478b-90a3-ae88353fa858
剩下的键值:29 == 29__a9076bdf-8f72-4bac-9fa6-e6a1e0a9c5e3
剩下的键值:19 == 19__581269fb-ef61-4230-bd74-0ea79b5ce2ed
剩下的键值:26 == 26__fdfb1084-21aa-44dd-926c-77cb423d5036
剩下的键值:28 == 28__71bbc242-ebbb-4e92-b197-8d83490a9489
剩下的键值:18 == 18__b591e7d7-48b9-48f6-b414-a0ca08475965
剩下的键值:25 == 25__9a8dd836-e347-44ba-8d36-3543621b0502
剩下的键值:7 == 7__30ad198e-8f1d-4d20-bc31-b07ea00d7856
剩下的键值:6 == 6__a1ee6fc8-64ea-4cca-929e-9f69198e8b3e
剩下的键值:5 == 5__e3a669b3-620b-4f3c-971b-07e8d8094fe2
剩下的键值:4 == 4__50566075-f337-4360-9e5f-0acc9b93894a
剩下的键值:3 == 3__ce8cfd33-1498-4131-8131-e63ea160335d
剩下的键值:2 == 2__18629f7c-dfeb-4129-ab8b-99734e9a2ec2
剩下的键值:24 == 24__d9ed28d7-20dc-40c9-8d9e-fa8189c48826
剩下的键值:9 == 9__9db1fc47-723f-404a-9a86-048752204a64
剩下的键值:8 == 8__fea52cc3-7bdd-42dc-a7ba-2ad510182642
剩下的键值:23 == 23__7bf376e4-541c-4121-903c-d54104554a88
剩下的键值:22 == 22__a9f78db9-b130-4d2e-a88f-ea3809b35fd7
*/
/*
* dict.Take(10)
30
移除的键值:21 == 21__f4cf0ec3-444c-49ac-894a-58a7375a3d8c
移除的键值:11 == 11__eea01248-98a1-4218-89b5-fa428e186ffe
移除的键值:27 == 27__fc83988a-7019-4151-835f-f4f9aecc2a1a
移除的键值:17 == 17__af873699-c060-454e-9976-aa3c92c01d46
移除的键值:20 == 20__3206193f-bdb1-4587-a55d-c2914cb0eec3
移除的键值:10 == 10__151e18a3-c520-416d-84d6-eb784a7a736f
移除的键值:29 == 29__4f36a07a-92fd-41fe-a590-380ab3cf0edd
移除的键值:19 == 19__ff75728a-74ac-4da5-8a31-4dd50ea587fe
移除的键值:26 == 26__a96ce349-147d-446f-9bd6-222302ef0f23
移除的键值:16 == 16__0fd10b53-4740-4fa2-9b42-282253a71e91
20
剩下的键值:28 == 28__e9de73a5-2719-4252-b13f-0a5b79e7a2e2
剩下的键值:18 == 18__83953eca-d0e2-44cf-9f6a-570fe1fa3036
剩下的键值:25 == 25__ab08d55b-6d96-4a64-a935-d137e00bd04b
剩下的键值:15 == 15__2815e2e4-d290-4b74-9866-5bfe65138a37
剩下的键值:7 == 7__b759b580-27b9-45f4-b095-bbfd9136c11f
剩下的键值:6 == 6__b3195d13-0679-433c-98d3-4a3e9d81a1d4
剩下的键值:5 == 5__6e43ab29-59e3-4212-84ba-528710acecae
剩下的键值:4 == 4__c5f2072f-e329-4a88-ba15-8ece7662629f
剩下的键值:3 == 3__7a95ab3f-9e56-4dc7-a6cb-b9f7c5dd9fd6
剩下的键值:2 == 2__6d3d6592-e1e8-48d2-a8ae-f23c92c38b74
剩下的键值:24 == 24__65f1bab5-c89e-40cc-9eef-86217f3cfc26
剩下的键值:1 == 1__59d69bea-0a7d-4615-b723-a23d1a4d37a6
剩下的键值:14 == 14__1d241592-7b64-42bf-932d-afe31b255035
剩下的键值:0 == 0__26c5666a-b4fa-498c-a867-2d7f2fbbacf2
剩下的键值:9 == 9__2d56da4c-86a0-4b89-bf96-a3d35adeccd2
剩下的键值:8 == 8__d8c734dc-5bea-4d09-9fcb-e1c33e3fdb4d
剩下的键值:23 == 23__affe20cd-992c-4081-ace0-effbb54eeb05
剩下的键值:13 == 13__36bbc6a7-a09a-4065-89b2-8bcbe5d377b7
剩下的键值:22 == 22__e5fa95d2-bd4d-486f-9ea2-9ae4ed3b4e50
剩下的键值:12 == 12__ad0fa641-5c95-4caf-b157-3aa66a3c3c36
*/