تفاوت یک فرهنگ لغت و یک لیست در C # چیست؟


پاسخ 1:

فرهنگ لغت یک جفت ارزش کلیدی است ، در حالی که یک لیست مجموعه ای بیشمار از اشیاء است

به نظر می رسد که سوال شما گسترده است زیرا Google بلافاصله آنرا پیشنهاد کرده است. در اینجا می توانید توضیحی مناسب پیدا کنید.

من اختلافات فنی را کنار می گذارم و فقط در مورد تفاوت آنها در عمل صحبت می کنم. یک لیست زمینه ای است که مواردی را در اختیار شما قرار می دهد که به آنها ترتیب نمی دهند. از طرف دیگر فرهنگ لغت مجموعه ای از مقادیر است که با یک کلید منحصر به فرد جفت می شوند. کلید را به او بدهید و او مقدار زوج را فاش می کند.

لیست ها بسیار انعطاف پذیر هستند ، اما این انعطاف پذیری می تواند هزینه پردازش سربار را بپردازد. می توانید با استفاده از پرس و جو LINQ موارد را در یک لیست جستجو کنید و به دنبال لیست های کوچک که معمولاً خوب هستند ، جستجو کنید. با این حال ، یک فرهنگ لغت برای این کار بخصوص ساخته شده است و بنابراین بسیار سریعتر است.


پاسخ 2:

یک ترفند ساختار داده ای شبیه به آرایه است که محتوای آن را در حافظه پیوسته ذخیره می کند و همان ویژگی های بدون علامت را مانند آرایه ها ارائه می دهد. لیست نیز گسترش می یابد عملکرد پایه مانند آرایه ای که امکان عملی بودن پویا را فراهم می کند. ذکر این نکته مهم است که حیله گری یک لیست پیوندی نیست ، بلکه یک ساختار شبیه به آرایه است (اگر می خواهید یک لیست پیوندی بخواهید ، به LinkedList نیاز دارید تماس بگیرید)

فرهنگ لغت یک مجموعه ارتباطی مبتنی بر هش است که شما را قادر می سازد با اختصاص دادن آنها به یک TKey ، تلویزیون ها را بسیار کارآمد جستجو ، درج و حذف کنید. با استفاده از کلید مورد نظر خود با مقدار دلخواه به موارد دسترسی پیدا می کنید. شما نمی توانید از طریق فهرست به موارد دسترسی پیدا کنید. علاوه بر این ، ترتیب ترتیب عناصر لیست پایدار یا قابل پیش بینی نیست. به عنوان مثال ، اگر هر شخصی شماره تأمین اجتماعی منحصر به فردی دارد و می خواهید به سرعت فرد را پیدا کنید ، در صورت وجود ، در مجموعه با SSN خاص ، می توانید از فرهنگ لغت استفاده کنید استفاده کنید بر خلاف لیست ، شما به سرعت نمی توانید به نفر پنجم این مجموعه دسترسی پیدا کنید ، اما می توانید به آن شخص دسترسی پیدا کنید. .. اگر اصلاً ... که خیلی سریع 123-45-6789 را به عنوان SSN دارد. در لیست (اگر مرتب نشده باشد) ، هر شخص موجود در این لیست باید بررسی کند که آیا SSN دلخواه خود را دارد یا خیر. فرهنگ لغت لازم نیست این کار را انجام دهد و برای این نوع پرس و جوها بسیار سریع است.