加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

按字母顺序插入列表C#

发布时间:2020-12-15 18:11:51 所属栏目:百科 来源:网络整理
导读:有人可以教我如何在C#中按字母顺序将项目插入列表中? 所以每当我添加到列表中,我想添加一个项目,这个列表在理论上可能变得相当大. 示例代码: Public Class Person{ public string Name { get; set; } public string Age { get; set; }}Public Class Storag
有人可以教我如何在C#中按字母顺序将项目插入列表中?

所以每当我添加到列表中,我想添加一个项目,这个列表在理论上可能变得相当大.

示例代码:

Public Class Person
{
     public string Name { get; set; }
     public string Age { get; set; }
}

Public Class Storage
{
    private List<Person> people;

    public Storage
    {
        people = new List<Person>();
    }


    public void addToList(person Person)
    {
        int insertIndex = movies.findindex(
            delegate(Movie movie) 
            {
              return //Stuck here,or Completely off Track.

            }
        people.insert(insertIndex,newPerson);
    }

}

解决方法

定义一个比较器实现 IComparer<T> Interface:
public class PersonComparer : IComparer<Person>
{
    public int Compare(Person x,Person y)
    {
        return x.Name.CompareTo(y.Name);
    }
}

然后使用SortedSet<T> Class:

SortedSet<Person> list = new SortedSet<Person>(new PersonComparer());
        list.Add(new Person { Name = "aby",Age = "1" });
        list.Add(new Person { Name = "aab",Age = "2" });
        foreach (Person p in list)
            Console.WriteLine(p.Name);

如果仅限于我们的.NetFramework3.5,您可以使用SortedList<TKey,TValue> Class:

SortedList<string,Person> list = 
          new SortedList<string,Person> (StringComparer.CurrentCulture);
Person person = new Person { Name = "aby",Age = "1" };
list.Add(person.Name,person);
person = new Person { Name = "aab",Age = "2" };
list.Add(person.Name,person);

foreach (Person p in list.Values)
    Console.WriteLine(p.Name);

仔细阅读MSDN artcile中的备注部分,比较此类和SortedDictionary<TKey,TValue> Class

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读