예제 #1
0
 private IEnumerable <TEnum> GetEnumerable()
 {
     return(Enumerable.Concat(
                ReorderedValues,
                TypicalValues.Where(v => !ReorderedValues.Contains(v))
                ));
 }
예제 #2
0
    public int Compare(TEnum x, TEnum y)
    {
        var xIndex = ReorderedValues.IndexOf(x);
        var yIndex = ReorderedValues.IndexOf(y);

        // no such enums in our order list:
        // so this enum values must be in the end
        //   and must be ordered between themselves by default

        if (xIndex == -1)
        {
            if (yIndex == -1)
            {
                xIndex = TypicalValues.IndexOf(x);
                yIndex = TypicalValues.IndexOf(y);
                return(xIndex.CompareTo(yIndex));
            }

            return(-1);
        }

        if (yIndex == -1)
        {
            return(-1);    //
        }

        return(xIndex.CompareTo(yIndex));
    }