使用多个不同字段对数组进行排序 - 不按char排序

时间:2015-02-25 22:23:37

标签: c# arrays sorting

这是我的班级:

public class walidacja
{
    public char znak { get; set; }
    public double wyj_neuron_1 { get; set; }
    public double wyj_neuron_2 { get; set; }
    public double wyj_neuron_3 { get; set; }
    public double wyj_neuron_1_norm { get; set; }
    public double wyj_neuron_2_norm { get; set; }
    public double wyj_neuron_3_norm { get; set; }
    public bool rozpoznaj { get; set; }

    public walidacja(char lit, double a, double b, double c, bool test)
    {
        this.znak = lit;
        this.wyj_neuron_1 = a;
        this.wyj_neuron_2 = b;
        this.wyj_neuron_3 = c;
        this.wyj_neuron_1_norm = a / (a + b + c);
        this.wyj_neuron_2_norm = b / (a + b + c);
        this.wyj_neuron_3_norm = c / (a + b + c);
        this.rozpoznaj = test;
    }
}

然后我宣布

valid = new walidacja[counter];

我用数据填充数组。 Znak充满相同数量的3个字母(因此,如果计数器= 15,那么在znak字段中将有5个a,5个b,5个c。)

为什么这不按char znak排序数组?

valid.OrderBy(a => a.znak);

1 个答案:

答案 0 :(得分:2)

OrderBy返回一个新序列,它不会更改您的数组。您需要将其分配回来:

valid = valid.OrderBy(a => a.znak).ToArray();