সি # তে (যেহেতু আপনি এটির মতো ট্যাগ করেছেন) আপনি এটির মতো একটি লিনকিউ এক্সপ্রেশন ব্যবহার করতে পারেন:
List<Control> c = Controls.OfType<TextBox>().Cast<Control>().ToList();
পুনরাবৃত্তির জন্য সম্পাদনা করুন:
এই উদাহরণে, আপনি প্রথমে নিয়ন্ত্রণের তালিকা তৈরি করেন এবং তারপরে এটি জনপ্রিয় করার জন্য কোনও পদ্ধতিতে কল করুন। যেহেতু পদ্ধতিটি পুনরাবৃত্তিযোগ্য তাই এটি তালিকাটি ফিরিয়ে দেয় না, এটি কেবল এটি আপডেট করে।
List<Control> ControlList = new List<Control>();
private void GetAllControls(Control container)
{
foreach (Control c in container.Controls)
{
GetAllControls(c);
if (c is TextBox) ControlList.Add(c);
}
}
Descendants
ফাংশনটি ব্যবহার করে একটি লিনকিউ বিবৃতিতে এটি করা সম্ভব হতে পারে , যদিও আমি এর সাথে তেমন পরিচিত নই। সে সম্পর্কে আরও তথ্যের জন্য এই পৃষ্ঠাটি দেখুন ।
একটি সংগ্রহ ফিরে 2 সম্পাদনা করুন:
@ প্রোফক যেমন পরামর্শ দিয়েছেন, এমন একটি পদ্ধতি যা কেবল পছন্দসই নিয়ন্ত্রণগুলি দেয় কেবল সম্ভবত আরও ভাল অনুশীলন। এটি চিত্রিত করার জন্য আমি কোডটি নিম্নরূপে সংশোধন করেছি:
private IEnumerable<Control> GetAllTextBoxControls(Control container)
{
List<Control> controlList = new List<Control>();
foreach (Control c in container.Controls)
{
controlList.AddRange(GetAllTextBoxControls(c));
if (c is TextBox)
controlList.Add(c);
}
return controlList;
}