আমি কীভাবে লিনকউয়ের সাথে অনন্য নির্বাচন করতে পারি?


96

আমার এই মত একটি তালিকা আছে:

Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange

আমি লিনকউয়ের সাথে একটি ইলেক্ট্রিক সিলেক্ট করার চেষ্টা করছি, আমি চাই

Red
Brown
Yellow
Green
Orange

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name;

আমি তখন এটিকে পরিবর্তন করেছিলাম

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name.Distinct();

কোন সাফল্য ছাড়া। প্রথমটি selectসমস্ত রঙ পায়, সুতরাং আমি কেবলমাত্র অনন্য মানগুলি পেতে এটি কীভাবে পরিবর্তন করব?

যদি এই ক্যোয়ারিকে কাঠামোগত করার আরও ভাল উপায় থাকে তবে সেই রাস্তাটিতে যাওয়ার চেয়ে খুশি।

আমি কীভাবে এটি সম্পাদনা করতে যাব যাতে .OrderBy( "column name" )বর্ণের বর্ণ অনুসারে বর্ণের নাম থাকতে পারে, তাই নামের সম্পত্তি?

আমি একটি বার্তা পেতে থাকি:

ধরণের আর্গুমেন্টগুলি ব্যবহার থেকে অনুমান করা যায় না। প্রকারের আর্গুমেন্টগুলি স্পষ্ট করে উল্লেখ করার চেষ্টা করুন।

উত্তর:


159

Distinct()ক্রম আপ জগাখিচুড়ি যাচ্ছে, তাই আপনি যে পরে বাছাই করতে হবে।

var uniqueColors = 
               (from dbo in database.MainTable 
                 where dbo.Property == true 
                 select dbo.Color.Name).Distinct().OrderBy(name=>name);

4
ধন্যবাদ, এটি সঠিক উত্তর। ওর্ডার বাই () পরামিতিগুলিতে কী চলে দয়া করে কেউ ব্যাখ্যা করতে পারেন। আপনার নাম => নাম আছে। ডিবিতে কি নামটি কলামের নাম থেকে আসছে? কারণ আমাদের কাছে dbo.Color.Nameতখন কেবল name=>nameকোন ইঙ্গিতগুলি এটি কলামের নাম নয়? উদ্ভট এটিও সঠিকভাবে সাজান যদি আমি কেবল এটি পরিবর্তন করি.OrderBy(a=>a)
ব্যারন

4
ভেরিয়েবলের নাম অপ্রাসঙ্গিক। এটি মাত্র {অবজেক্টটি ফাংশনে} => {সাজানোর জন্য ব্যবহৃত into যেহেতু আমরা ইতিমধ্যে নির্বাচনটি সম্পন্ন করেছি, সংগ্রহের অনুসারে বাছাই করা হচ্ছে কেবলমাত্র নাম।
জেমস কারান

ধন্যবাদ @ জেমসাকরান, আপনার সমাধান আমাকে অনেক সাহায্য করেছে।
রন

দেখে মনে হচ্ছে পুরো অবজেক্ট / রেকর্ডের মাধ্যমে অর্ডার দেওয়ার জন্য যদি কোনও অর্ডারড বাই () থাকে তবে এটি ভাল লাগবে। একটি এক্সটেনশন পদ্ধতিটি এখনও কোনও কারণে কোনও প্রতিনিধিকে কল করবে।
নেটমেজ

@ নেটমেজ - "সম্পূর্ণ বস্তু / রেকর্ড" বলতে আপনার অর্থ কী তা ব্যাখ্যা করুন। প্রতিটি ক্ষেত্র? কোন ক্রমে? প্রাথমিক কী সহ?
জেমস কারান

20
var uniqueColors = (from dbo in database.MainTable 
                    where dbo.Property == true
                    select dbo.Color.Name).Distinct();

10

কোয়েরি বোধগম্য বাক্য গঠনটি ব্যবহার করে আপনি নিম্নলিখিতভাবে অর্ডারবাই অর্জন করতে পারেন:

var uniqueColors = (from dbo in database.MainTable
                    where dbo.Property
                    orderby dbo.Color.Name ascending
                    select dbo.Color.Name).Distinct();

হুম ... যা কোনও বর্ণমালা অনুসারে অর্জিত হয়নি - কোনও কারণে ... আমি আরোহণ এবং অবতরণ স্যুইচ করেছি এবং একই ফলাফল পেয়েছি। স্বতন্ত্র বক্তব্য এটি প্রভাবিত করছে? এরপরে কি আরডার করা দরকার?
ব্যারন

বিভিন্ন অনন্য অনুবাদ চেষ্টা করতে পারে = ফলাফল থেকে (ডাটাবেসে dbo থেকে। মাইন টেবিল যেখানে dbo.Property dbo.Color.Name নির্বাচন করুন) .ডিন্টিনেক্ট () অর্ডারবাই ফলাফল আরোহণ;
কর্ডিয়ালগার্ম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.