कैसे सॉर्ट करने के लिए सूची नियंत्रण के प्रकार

0

सवाल

मैं बनाया की सूची पर नियंत्रण के रूप में इस तरह:

            List<Control> list = new List<Control>();
            foreach (Control c in this.Controls)
            {
                if (c.GetType() == typeof(Label))
                {
                    list.Add(c);
                }
            }

सभी नियंत्रण इस सूची में लेबल की जरूरत है तो मैं सॉर्ट करने के लिए इस सूची का नियंत्रण आरोही क्रम में, तो मैं का उपयोग क्रमबद्ध विधि की सूची वर्ग इस तरह:

list.Sort();

लेकिन यह मुझे के लिए कहते हैं System.InvalidOperationException: 'Failed to compare two elements in the array.' ArgumentException: At least one object must implement IComparable.

के बाद से मैं करना चाहते हैं को सॉर्ट करने के लिए इसे का उपयोग कर TabIndex मूल्य या कम से कम अपने नाम से, यह स्पष्ट नहीं है मेरे लिए. मुझे क्या करना चाहिए पारित करने के लिए क्रमबद्ध विधि या क्या मैं का उपयोग करना चाहिए के बजाय इस विधि?

c# controls list sorting
2021-10-27 17:14:53
2

सबसे अच्छा जवाब

2

आप का उपयोग कर सकते हैं IEnumerable इंटरफ़ेस विधि के OrderBy प्रदान करते हैं और यह एक समारोह के साथ निर्दिष्ट करता है कि क्या आप तत्व की तुलना कर रहे हैं के रूप में एक विकल्प का उपयोग करने के लिए सॉर्ट करें.

using System;
using System.Collections.Generic;
using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var controls = new List<B>() {new B() {Index = 0}, new B() {Index = -1}};
        var sortedControls = controls.OrderBy(x => x.Index).ToList();
        Console.WriteLine(controls[0].Index); // -1
        Console.WriteLine(controls[1].Index); // 0
    }
}

public class B
{
    public int Index {get; set;}
}
2021-10-27 17:27:05
1

आप पास कर सकते हैं एक Comparison समारोह के लिए list.Sort

var list = this.Controls.OfType<Label>().ToList();
list.Sort((a, b) => a.TabIndex.CompareTo(b.TabIndex));
2021-10-27 17:22:01

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में