আমি কীভাবে একটি তালিকা <স্ট্রিং> অর্ডার করতে পারি?


119

আমার এটি আছে List<string>:

IList<string> ListaServizi = new List<string>();

আমি কীভাবে এটি বর্ণানুক্রমিক এবং আরোহণের অর্ডার করতে পারি?




বাছাই পদ্ধতি; বিপরীত সংমিশ্রণে যদি আপনারও অবতরণের প্রয়োজন হয়
নাথান কিউ

উত্তর:


235
ListaServizi = ListaServizi.OrderBy(q => q).ToList();

অর্ডারবি ব্যবহার করার জন্য @ সার্ভিসের একটি কারণ হ'ল লিস্টা সার্ভিজির কোনও সাজানোর পদ্ধতি নেই কারণ এটি ঘোষণা করা হয়েছে IList<string>। এই কোডটি আসলে লিখিত হিসাবে কাজ করবে, উত্তরগুলির চেয়ে পৃথক যা আরও বেশি সাফল্য পেয়েছে ListaServizi.Sort()। আমি বলছি না যে এটিই আমি বেছে নিয়েছি এমন সমাধান, তবে আমি আমার উত্তর পোস্ট করার সময় এটিই ছিল একমাত্র সঠিক উত্তর answer
ফুগ

যদি আপনি যে সমাধানটি বেছে নিতে চান তা না হলে কেন এটি উত্তর হিসাবে প্রস্তাব করবেন? উত্তর হিসাবে আপনি কি করতে চাই প্রস্তাব; যদি এর অর্থ হ'ল আইলিস্ট থেকে তালিকাতে টাইপ পরিবর্তন করা হয় যাতে আপনি .Sortএটিতে কল করতে পারেন , তবে কেন এটি করবেন না।
পরিবেশন করুন

1
@ সার্ভে তিনি সমস্যার স্পেসিফিকেশন পরিবর্তন না করেই সমস্যাটি সমাধান করেছেন। এটি এখন পর্যন্ত পছন্দসই উপায়। তদ্ব্যতীত, সমস্যা বিবৃতি বাস্তবায়ন প্যাটার্নের উপর ইন্টারফেস ব্যবহার করে, যা খুব গুরুত্বপূর্ণ। তালিকার ধরণে পরিবর্তনের প্রস্তাব দেওয়া সঠিক, তবে সঠিক উত্তরের পরে বিকল্প উত্তর হিসাবে করা উচিত, কারণ এতে সমস্যাটি পরিবর্তন করা দরকার।
অরেলিন রিবন

1
@ অরলিয়ানআরিবন সমস্যা বিবৃতি সম্পর্কে কিছুই বলে না যে ভেরিয়েবলের ধরণটি পরিবর্তন করা যায় না। প্রয়োজনীয়তা খুব নির্দিষ্টভাবে সাজানোর একটি List। এবং এই উত্তরের সাথে জড়িত ব্যয়টি তুচ্ছ এবং অপ্রয়োজনীয়ও। এটি আক্ষরিক কিছুই লাভ করে না । এটি কোডটিতে জটিলতা যুক্ত করে, এটি কম সংক্ষিপ্ত, এটি কম দক্ষ, আক্ষরিক অর্থে এখানে অসুবিধাগুলি ছাড়া কিছুই নেই।
পরিবেশন করুন


12

অন্যান্য উত্তরগুলি পরামর্শ দেওয়ার জন্য সঠিক Sort, তবে তারা মনে হয় যে স্টোরেজের অবস্থানটি টাইপ করা হয়েছে IList<stringSortইন্টারফেসের অংশ নয়।

আপনি যদি জানেন যে ListaServiziসর্বদা একটি থাকে List<string>, আপনি হয় এর ঘোষিত প্রকারটি পরিবর্তন করতে পারেন, বা একটি কাস্ট ব্যবহার করতে পারেন। আপনি যদি নিশ্চিত না হন তবে আপনি প্রকারটি পরীক্ষা করতে পারেন:

if (typeof(List<string>).IsAssignableFrom(ListaServizi.GetType()))
    ((List<string>)ListaServizi).Sort();
else
{
    //... some other solution; there are a few to choose from.
}

সম্ভবত আরও বুদ্ধিমান:

List<string> typeCheck = ListaServizi as List<string>;
if (typeCheck != null)
    typeCheck.Sort();
else
{
    //... some other solution; there are a few to choose from.
}

যদি আপনি জানেন যে ListaServiziকখনও কখনও IList<string>এটির একটি পৃথক বাস্তবায়ন হবে , একটি মন্তব্য দিন, এবং আমি এটি বাছাইয়ের জন্য একটি বা দুটি পরামর্শ যুক্ত করব।


5
ListaServizi.Sort();

আপনার জন্য এটি করবে। স্ট্রিংগুলির তালিকা সহ এটি যথেষ্ট সোজা। জিনিসগুলি বাছাই করা হলে আপনাকে একটু চালক হতে হবে।


3
ListaServiziহয় IList<string>; ইন্টারফেসের একটি Sortপদ্ধতি নেই। আপনার এখানে কমপক্ষে একটি কাস্ট দরকার।
ফুগ

3
List<string> myCollection = new List<string>()
{
    "Bob", "Bob","Alex", "Abdi", "Abdi", "Bob", "Alex", "Bob","Abdi"
};

myCollection.Sort();
foreach (var name in myCollection.Distinct())
{
    Console.WriteLine(name + " " + myCollection.Count(x=> x == name));
}

আউটপুট: আব্বি 3 অ্যালেক্স 2 বব 4

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