অবজেক্টের তালিকাটিকে অবজেক্টের অন্যতম বৈশিষ্ট্যের অ্যারেতে রূপান্তর করুন


133

বলুন আমার নিম্নলিখিত ক্লাস রয়েছে:

public class ConfigItemType
{
    public string Name { get; set; }
    public double SomeOtherThing { get; set; }
}

এবং তারপরে আমি নীচের ক্লাসগুলির একটি তালিকা তৈরি করি (List<ConfigItemType> MyList )

নীচের স্বাক্ষর সহ এখন আমার একটি পদ্ধতি রয়েছে:

void AggregateValues(string someUnrelatedValue, params string[] listGoesHere)

আমি কিভাবে ফিট করতে পারে MyListকরার জন্য listGoesHereমান ব্যবহারConfigItemType.Name প্যারাম স্ট্রিং অ্যারে হিসেবে?

আমি মোটামুটি নিশ্চিত যে লিনক এটি করতে পারে .... তবে এর MyListকোনও selectপদ্ধতি নেই (যা আমি ব্যবহার করতাম)।

উত্তর:


278

আপনি খুঁজছেন

MyList.Select(x=>x.Name).ToArray();

যেহেতু Selectএকটি এক্সটেনশন পদ্ধতি হ'ল একটি যুক্ত করে সেই নাম স্থান যুক্ত করার বিষয়টি নিশ্চিত করুন

using System.Linq

আপনার ফাইলে - তারপরে এটি ইন্টেলিসেন্সের সাথে প্রদর্শিত হবে।


এটাই আমি ভেবেছিলাম। তবে সিলেক্ট ইন্টেলিজেন্সে প্রদর্শিত হবে না।
ভ্যাক্কানো

GAAAAAAA! আমি লিনক অন্তর্ভুক্ত ছিল না!
ভ্যাক্কানো

1
আপনার সিস্টেম.ডাটা.লিনক ব্যবহার করতে হবে; তারপরে ব্রোকেনগ্লাসের উত্তরটি অনুসরণ করুন
রামি শরীফ

1
আমি বাকশক্তিহীন! আহ ভালো. আমাকে এটি নির্ধারণ করতে সহায়তা করার জন্য নিখরচায় রেপ
ভ্যাক্কানো

চমত্কার সমাধান। আমি আমার অবজেক্ট-তালিকার স্ট্রিং "আইডি" অ্যাক্সেস করতে চেয়েছি। নিখুঁত কাজ করেছেন List<String> somestringlist = myobjectlist.Select(x => x.id).ToList();
মার্টি_ইন_এ_বক্স

19

আমি মোটামুটি নিশ্চিত যে লিনক এটি করতে পারে .... তবে মাইলিস্টের কোনও নির্বাচন পদ্ধতি নেই (যা আমি ব্যবহার করতাম)।

হ্যাঁ, লিনকুই এটি করতে পারে। এটি সহজ:

MyList.Select(x => x.Name).ToArray();

সম্ভবত সমস্যাটি হ'ল আপনার হয় হয় একটি রেফারেন্স না থাকলে System.Coreবা আপনি এর usingজন্য কোনও নির্দেশ অনুপস্থিত System.Linq



6

আমার মতো .NET 2.0 এর সাথে আটকে থাকা প্রত্যেকের জন্য নিম্নলিখিত পদ্ধতিতে চেষ্টা করুন (ওপিতে উদাহরণটিতে প্রযোজ্য):

ConfigItemList.ConvertAll<string>(delegate (ConfigItemType ci) 
{ 
   return ci.Name; 
}).ToArray();

যেখানে কনফিগার আইটেমলিস্টটি হল আপনার তালিকার পরিবর্তনশীল।


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