মান সহ একটি সি # অভিধান আরম্ভ করার সঠিক উপায়?


513

আমি নিম্নলিখিত কোড সহ একটি সি # ফাইলে একটি অভিধান তৈরি করছি:

private readonly Dictionary<string, XlFileFormat> FILE_TYPE_DICT
        = new Dictionary<string, XlFileFormat>
        {
            {"csv", XlFileFormat.xlCSV},
            {"html", XlFileFormat.xlHtml}
        };

newত্রুটি সহ একটি লাল রেখা রয়েছে :

বৈশিষ্ট্য 'সংগ্রহের উদ্যোগক' ব্যবহার করা যাবে না কারণ এটি আইএসও -২ সি # ভাষার নির্দিষ্টকরণের অংশ নয়

এখানে কি চলছে কেউ ব্যাখ্যা করতে পারেন?

সম্পাদনা: ঠিক আছে, তাই দেখা যাচ্ছে যে আমি .NET সংস্করণ 2 ব্যবহার করছিলাম।


3
লক্ষ্যযুক্ত কাঠামো সংস্করণ পরিবর্তন করুন বা আরম্ভের "পুরানো" উপায়টি ব্যবহার করুন।
সেবাস্তিয়ান আইমেল

আপনি এই কোডটি কোন প্রসঙ্গে রেখেছেন? একটি .csফাইল যা ভিজ্যুয়াল স্টুডিও দ্বারা সংকলিত হয়, বা একটিতে .cshtml? আপনার প্রকল্পের ফাইলের কোনও languageVersionউপাদান রয়েছে ?
কোডকাস্টার

উত্তর:


825

আমি একটি সাধারণ। নেট 4.0 কনসোল অ্যাপ্লিকেশনটিতে এই সমস্যাটি পুনরুত্পাদন করতে পারি না:

static class Program
{
    static void Main(string[] args)
    {
        var myDict = new Dictionary<string, string>
        {
            { "key1", "value1" },
            { "key2", "value2" }
        };

        Console.ReadKey();
    }
}

আপনি কি এটি একটি সাধারণ কনসোল অ্যাপ্লিকেশনটিতে পুনরুত্পাদন করার চেষ্টা করতে পারেন এবং সেখান থেকে যেতে পারেন? দেখে মনে হচ্ছে যে আপনি .NET 2.0 (যা এটি সমর্থন করে না) বা ক্লায়েন্ট প্রোফাইল কাঠামোটিকে লক্ষ্য করে নিচ্ছেন, .NET এর কোনও সংস্করণ যা আরম্ভের বাক্য গঠনটিকে সমর্থন করে।


11
ইস্যুটি সি # এর সংস্করণ, যা ওপি ব্যবহার করছে, বস্তু / সংগ্রহের প্রাথমিককরণ সি # 3.0 না হওয়া পর্যন্ত চালু করা হয়নি। এটি কেন আগে কাজ করে না সে সম্পর্কে বিস্তারিত ইতিমধ্যে উত্তর দেওয়া হয়েছে ।
জেমস

@ জেমস - এটিরূপে নির্দেশ করতে সম্পাদিত।
হ্যানি

আমি কীভাবে সি # এর কোন সংস্করণ ব্যবহার করছি বা এটি পরিবর্তন করব তা আমি কীভাবে চেক করব?
azrosen92

3
প্রকল্পের বৈশিষ্ট্যগুলি ফ্রেমওয়ার্কের লক্ষ্য সংস্করণটি নির্দেশ করবে।
হ্যানি

2
@ জেমস - নির্ভরযোগ্যভাবে নয়, তবে, যেমন এই ব্যক্তিটি ২.০ টার্গেট করে এমন একটি সমাধানে কিছু উত্তরাধিকারের কাজ গ্রহণ করছেন এবং এটি সম্পর্কে অবগত নন, উদাহরণস্বরূপ।
হ্যানি

196

সি # 6.0 এর সাহায্যে আপনি নিম্নলিখিত পদ্ধতিতে একটি অভিধান তৈরি করতে পারেন:

var dict = new Dictionary<string, int>
{
    ["one"] = 1,
    ["two"] = 2,
    ["three"] = 3
};

এমনকি এটি কাস্টম ধরণের সাথেও কাজ করে।


8
এই নতুন সিনট্যাক্সটিতে আরও আগ্রহী লোকদের জন্য এখানে ভাল ব্লগ পোস্ট: মার্সিন-
শেভেডজুক.

1
এটি ইনলাইন ঘোষণার জন্য উপযুক্ত।
তিরামোনিয়াম

1
ভাল - আরম্ভের এই উপায়টি জানেন না। পাইথনের মতো দেখতে কিছুটা)) ধন্যবাদ!
মিখাইল টি।

আমি আপনার উপায়টি পছন্দ করি, তবে নোটগুলি গ্রহণ করুন যে এটি line "কী 2", "মান 2"},
ম্যাক্সটার

35

আপনি একটি Dictionary(এবং অন্যান্য সংগ্রহ) ইনলাইন শুরু করতে পারেন । প্রতিটি সদস্যের ধনুর্বন্ধনী সহ রয়েছে:

Dictionary<int, StudentName> students = new Dictionary<int, StudentName>
{
    { 111, new StudentName { FirstName = "Sachin", LastName = "Karnik", ID = 211 } },
    { 112, new StudentName { FirstName = "Dina", LastName = "Salimzianova", ID = 317 } },
    { 113, new StudentName { FirstName = "Andy", LastName = "Ruth", ID = 198 } }
};

বিশদ জানতে এমএসডিএন দেখুন ।


21

মনে করুন আমাদের কাছে এর মতো একটি অভিধান রয়েছে

Dictionary<int,string> dict = new Dictionary<int, string>();
dict.Add(1, "Mohan");
dict.Add(2, "Kishor");
dict.Add(3, "Pankaj");
dict.Add(4, "Jeetu");

আমরা নিম্নলিখিত হিসাবে এটি সূচনা করতে পারেন।

Dictionary<int, string> dict = new Dictionary<int, string>  
{
    { 1, "Mohan" },
    { 2, "Kishor" },
    { 3, "Pankaj" },
    { 4, "Jeetu" }
};

রিশার্পার উত্তর।
অ্যান্টনি বুথ

10

অবজেক্ট ইনিশিয়ালাইজারগুলি সি # 3.0 তে প্রবর্তিত হয়েছিল, আপনি কোন ফ্রেমওয়ার্ক সংস্করণটিকে লক্ষ্য করছেন তা পরীক্ষা করুন।

সি # 3.0 এর ওভারভিউ


0

সি # 6.0 এর সাথে

static class Program
{
    static void Main(string[] args)
    {
        var myDict = new Dictionary<string, string>
        {
           ["Key1"]="Value1",
           ["Key2"]="Value2"
        };

        Console.ReadKey();
    }
}

2
এটি ইতিমধ্যে উত্তর দেওয়া হয়েছে। নতুন কিছু যুক্ত হচ্ছে না।
নওফাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.