У меня есть конструктор с 2-х участников (двойные) массивы:Сортировка массива C# на основе члена объекта?
конструктор [я] .x и конструктор [я] .y (где я есть число элементов)
Как можно отсортировать х member: constructor []. x?
У меня есть конструктор с 2-х участников (двойные) массивы:Сортировка массива C# на основе члена объекта?
конструктор [я] .x и конструктор [я] .y (где я есть число элементов)
Как можно отсортировать х member: constructor []. x?
С помощью LINQ это просто
constructor = constructor.OrderBy(a => a.x).ToArray();
Без LINQ
class CustomClass
{
public double x;
public double y;
}
public class CustomComparer : IComparer<CustomClass>
{
private CustomComparer() { }
public static CustomComparer Instance { get { return _SingeltonInstance; } }
private static CustomComparer _SingeltonInstance = new CustomComparer();
public int Compare(CustomClass a, CustomClass b)
{
return a.x.CompareTo(b.x);
}
}
public class myCode
{
public void SomeFuction(CustomClass[] myClass)
{
//myClass is unsorted here;
Array.Sort(myClass, CustomComparer.Instance);
//myClass is sorted here;
}
}
Это не LINQ. LINQ (IEnumerable) использует OrderBy. Однако существует ['static Array.Sort'] (http://msdn.microsoft.com/en-us/library/system.array.sort.aspx) и [' List.Sort'] (http://msdn.microsoft.com/en-us/library/3da4abas.aspx). –
@pst это было напечатано из памяти с моего телефона. Исправленный. –
Просто держу вас на носках ;-) –
Пожалуйста вставьте реальный код (включая любые * попыток * вместе с * почему * почему они не работают). Здесь нет «конструктора», кроме имени. –
См. Http://stackoverflow.com/questions/1301822/how-to-sort-an-array-of-object-by-a-specific-field-in-c. Это не сортировка Array на месте, но она Я буду работать в большинстве случаев. Также см. Документацию [Array.Sort] (http://msdn.microsoft.com/en-us/library/system.array.sort.aspx). –
(Было бы интересно увидеть ответы, которые показывают использование Array.Sort, возможно, в дополнение к подходам LINQ. Все ответы, которые я смог найти на SO в моем кратком поиске, были связаны с LINQ/IEnumerable и * not *, а именно с массивом. Преимущество и костыль Array.Sort в том, что он мутирует.) –