Это пример, написанный с использованием LinqPad, который может вам помочь. Непосредственно на основе примера MSDN.
Вам просто нужно использовать свой собственный класс, вместо используемого образца здесь
void Main()
{
ArrayList al = new ArrayList();
al.Add(new Person() {Name="Steve", Age=53});
al.Add(new Person() {Name="Thomas", Age=30});
al.Sort(new PersonComparer());
foreach(Person p in al)
Console.WriteLine(p.Name + " " + p.Age);
}
class Person
{
public string Name;
public int Age;
}
class PersonComparer : IComparer
{
int IComparer.Compare(Object x, Object y)
{
if (x == null)
return (y == null) ? 0 : 1;
if (y == null)
return -1;
Person p1 = x as Person;
Person p2 = y as Person;
// Uncomment this to sort by Name
// return((new CaseInsensitiveComparer()).Compare(p1.Name, p2.Name));
return(p1.Age - p2.Age);
}
}
Существует пример на [MSDN страницы для ArrayList] (http://msdn.microsoft.com/en-us/library /0e743hdt(v=vs.110).aspx). Вы пытались что-либо использовать, используя этот пример в качестве отправной точки? – Steve
@dasblinkenlight LINQ в любом случае не работает с универсальными коллекциями. Вы можете создать общую коллекцию из 'ArrayList', отсортировать ее и создать новый ArrayList с отсортированными элементами, но я не думаю, что это хорошая идея. Как указал Стив, уже существует метод 'Sort', определенный на' ArrayList'. – MarcinJuraszek
с использованием LINQ также не подходит, потому что я кодирую устаревшее программное обеспечение, и я просил не использовать LINQ для этого. Мой массивList содержит много объектов, таких как X, Y, Z и т. Д., И я хочу сортировать arraylist на основе только свойства одного объекта, такого как Y. Может ли кто-нибудь предложить мне какое-либо представление об этом? –