예제 #1
0
        private static void ProcessMatrix(AType searchWhat, SearchInfo searchInfo)
        {
            if (searchWhat.Shape.Count > searchInfo.SearchWhere[0].Shape.Count)
            {
                // Travers down to the correct cells
                foreach (AType item in searchWhat)
                {
                    if (item.IsArray)
                    {
                        // Found an array, lets see if we can process it further
                        ProcessMatrix(item, searchInfo);
                    }
                    else
                    {
                        // Simple Scalar found
                        searchInfo.Result.AddWithNoUpdate(ProcessScalar(item, searchInfo));
                    }
                }
            }
            else if (searchWhat.Shape.SequenceEqual <int>(searchInfo.SearchWhere[0].Shape))
            {
                // search for the cell
                int found =
                    searchInfo.SearchWhere.Any(item => searchWhat.EqualsWithTolerance(item)) ? 1 : 0;

                searchInfo.Result.AddWithNoUpdate(AInteger.Create(found));
            }
            else
            {
                throw new Error.Length(searchInfo.ErrorText);
            }
        }
예제 #2
0
        private static void ProcessMatrix(AType searchWhat, SearchInfo searchInfo)
        {
            if (searchWhat.Shape.Count > searchInfo.SearchWhere[0].Shape.Count)
            {
                // Travers down to the correct cells
                foreach (AType item in searchWhat)
                {
                    if (item.IsArray)
                    {
                        // Found an array, lets see if we can process it further
                        ProcessMatrix(item, searchInfo);
                    }
                    else
                    {
                        // Simple Scalar found
                        searchInfo.Result.AddWithNoUpdate(ProcessScalar(item, searchInfo));
                    }
                }
            }
            else if (searchWhat.Shape.SequenceEqual<int>(searchInfo.SearchWhere[0].Shape))
            {
                // search for the cell
                int found = 
                    searchInfo.SearchWhere.Any(item => searchWhat.EqualsWithTolerance(item)) ? 1 : 0;

                searchInfo.Result.AddWithNoUpdate(AInteger.Create(found));
            }
            else
            {
                throw new Error.Length(searchInfo.ErrorText);
            }
        }