字典批量移除

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 */
 

 

posted @ 2016-09-23 13:10  茗::流  阅读(318)  评论(0)    收藏  举报
如有雷同,纯属参考。如有侵犯你的版权,请联系我。