Beispiel #1
0
    //nullを返すことがある!
    public MagicPatterns Equaled(MagicPatterns magicPatterns)
    {
        MagicPatterns magicPatterns2Return = magicPatternsList.FirstOrDefault(pattern => pattern.Equals(magicPatterns));

        if (magicPatterns2Return == null)
        {
            return(null);
        }
        else
        {
            return(magicPatterns2Return);
        }
    }
Beispiel #2
0
    public static List <MagicPatterns> LoadFromJson(string itemJson)
    {
        var       magicPatternsList_ = new List <MagicPatterns>();
        MagicRoot magicRoot          = JsonUtility.FromJson <MagicRoot>(itemJson);

        foreach (var magicIndexed in magicRoot.root.Select((value, index) => new { value, index }))
        {
            magicPatternsList_.Add(
                MagicPatterns.FromIntArray(magicIndexed.value.magicPatterns,
                                           magicRoot.root[magicIndexed.index].name,
                                           magicRoot.root[magicIndexed.index].particleName)
                );
        }
        return(magicPatternsList_);
    }
    public static MagicPatterns FromIntArray(int[] array, string name_ = "", string particleName_ = "")
    {
        var magicPatterns   = new MagicPatterns(name_: name_, particleName_: particleName_);
        var oddIndexValues  = array.Where((value, index) => index % 2 == 1);
        var evenIndexValues = array.Where((value, index) => index % 2 == 0);

        if (oddIndexValues.Count() != evenIndexValues.Count())
        {
            throw new Exception("the array's size wasn't odd.");
        }
        for (int i = 0; i < oddIndexValues.Count(); i++)
        {
            magicPatterns.linesByNumber.Add(
                new LineByNumber(
                    oddIndexValues.ElementAt(i),
                    evenIndexValues.ElementAt(i)
                    )
                );
        }
        return(magicPatterns);
    }
    public override bool Equals(object obj)
    {
        if (!(obj is MagicPatterns))
        {
            return(false);
        }

        MagicPatterns magicPatterns2Check = obj as MagicPatterns;

        if (linesByNumber.Count != magicPatterns2Check.linesByNumber.Count)
        {
            return(false);
        }

        foreach (LineByNumber line in magicPatterns2Check.linesByNumber)
        {
            if (!linesByNumber.Contains(line))
            {
                return(false);
            }
        }

        return(true);
    }