সিতে সংগ্রহের তালিকা তৈরি করতে অভিধান রূপান্তর করুন


95

কোনও অভিধানকে তালিকায় রূপান্তর করার চেষ্টা করার সময় আমার একটি সমস্যা আছে।

উদাহরণস্বরূপ, যদি কী হিসাবে টেমপ্লেট স্ট্রিং সহ একটি অভিধান থাকে এবং মান হিসাবে স্ট্রিং থাকে। তারপরে আমি অভিধান কীটি তালিকাভুক্তিতে স্ট্রিং হিসাবে রূপান্তর করতে চাই।

Dictionary<string, string> dicNumber = new Dictionary<string, string>();
List<string> listNumber = new List<string>();

dicNumber.Add("1", "First");
dicNumber.Add("2", "Second");
dicNumber.Add("3", "Third");

// So the code may something look like this
//listNumber = dicNumber.Select(??????);

4
আপনি অভিধান থেকে কীগুলির একটি তালিকা জিজ্ঞাসা করছেন? যদি থাকে তবে অভিধানে একটি কী কী আছে যা আপনাকে তা দেবে।
ব্রায়ান রাসমুসেন

উত্তর:


179

কীগুলি তাদের নিজস্ব তালিকায় রূপান্তর করতে:

listNumber = dicNumber.Select(kvp => kvp.Key).ToList();

অথবা আপনি এটি সংক্ষিপ্ত করতে পারেন এবং নির্বাচনগুলি ব্যবহার করে বিরক্তও করতে পারেন না:

listNumber = dicNumber.Keys.ToList();

@ ব্রায়ান - আমি আমার সম্পাদনায় সেখানে পৌঁছে যাচ্ছিলাম। আমি প্রথমে সিলেক্ট পদ্ধতিটি দেখাতে চেয়েছিলাম যেহেতু ওপি সম্পর্কে জিজ্ঞাসা করা হয়েছিল এবং তারপরে বিকল্পটি প্রদর্শন করা উচিত। :-)
জাস্টিন নিসনার

সুতরাং আমি অনুভব করেছি, তাই আমি আমার মন্তব্য সরিয়েছি।
ব্রায়ান রাসমুসেন

4
এটি সত্যিই সহায়ক ছিল। আমাকে আবেদন করতে হবে। কীগুলি ফেরত দেওয়ার আগে ডিকের কাছে (...), কিন্তু সেই পদ্ধতিটি কোনও অভিধান ফেরায় না, তাই আমি কীগুলির সম্পত্তিটি অ্যাক্সেস করতে পারিনি। যেখানে দুর্দান্ত কাজ করেছেন তার পরে এই নির্বাচনটি ব্যবহার করে
মার্টন কল

23

বিকল্পভাবে:

var keys = new List<string>(dicNumber.Keys);

4
.NET কমপ্যাক্ট ফ্রেমওয়ার্ক 2.0 এর সাথে কাজ করা (সুতরাং কোনও লিঙ্ক নেই) এটি আমার জন্য সেরা বিকল্প ছিল।
মাইকেল মারফি

আপনি লিনকিউ ব্যবহার করতে না পারলে এই বিকল্পগুলি সবচেয়ে ভাল বলে মনে হচ্ছে।
user2000950

17

আপনি যদি লিনক ব্যবহার করতে চান তবে নীচের স্নিপেটটি ব্যবহার করতে পারেন:

var listNumber = dicNumber.Keys.ToList();

10

আপনি কী কী রূপান্তর করতে চান:

List<string> listNumber = dicNumber.Keys.ToList();

অন্যথায় যদি আপনি মান রূপান্তর করতে চান:

List<string> listNumber = dicNumber.Values.ToList();

এটি কাজ করবে, তবে আপনার প্রত্যাশা অনুযায়ী নাও হতে পারে, এমনকি ডিকের আগে কী দ্বারা আদেশ করা হয়েছিল, ডিক.ভ্যালুগুলি নেই ...
বুননমূন


3

আপনি যদি একটি কী যুক্তি দিয়ে অভিধান কীগুলি সংগ্রহ করতে চান।

List<string> lstKeys = Dict.Keys;
Methodname(lstKeys);
-------------------
void MethodName(List<String> lstkeys)
{
    `enter code here`
    //Do ur task
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.