以字母顺序显示ListBox中显示的内容

时间:2015-11-27 19:05:30

标签: c# winforms

http://imgur.com/f0aaiZN 抓住用户联系人,并随机显示它们,我怎样才能按字母顺序显示它们,因此更容易找到某个联系人。

下面是一些代码,不知道是否需要它。

    private void Form1_Load(object sender, EventArgs e)
    {
        //I entered a message box so it doesn't crash instantly.
        MessageBox.Show("Please allow SkypeBot.vshost.exe to access skype if you haven't yet. (Look at your Skype application)");
        Skype skype = new Skype();
        skype.Attach();
        getContacts(skype);
    }

    List<string> Contacts = new List<string>();

    public void getContacts(Skype skype)
    {
        //This goes through all the contacts in the contacts list
        for (int i = 0; i < skype.HardwiredGroups.Count; i++)
        {
            //This checks if the user is a friend or not
            if (skype.HardwiredGroups[i + 1].Type == TGroupType.grpAllFriends)
            {
                //If they are, then do this loop
                for (int j = skype.HardwiredGroups[i + 1].Users.Count; j > 0; j--)
                {
                    //This adds the contact to the Contacts list we declared before.
                    Contacts.Add(skype.HardwiredGroups[i + 1].Users[j].Handle);
                }
            }
        }
        //This makes the listBox show the contents of the Contact list.
        listBox1.DataSource = Contacts;
    }
        //aot stands for amount of times.
    public void sendMessage(string message, string user, int aot, Skype skype)
    {
        for (int i = 0; i < aot; i++)
        {
            skype.SendMessage(user, message);
        }
    }

2 个答案:

答案 0 :(得分:3)

一种方法是在绑定之前对联系人进行排序:

listBox1.DataSource = Contacts.OrderBy( x => x ).ToList();

答案 1 :(得分:3)

要按字母顺序对项目进行排序,您只需将ListBox的{​​{1}}属性设置为true即可。

同样使用linq,您可以使用Sorted方法对升序进行排序,或使用OrderBy方法对降序进行排序:

listBox1.DataSource= Contacts.OrderBy(x => x).ToList();