2020년 6월 2일 화요일

Unity[유니티] List SearchLogic[검색기능]



    /// <summary>
    /// 검색 조건과 내용으로 테이블에 있는 데이터를 검색하는 메서드
    /// </summary>
    /// <param name="value">검색 조건</param>
    /// <param name="input">검색 내용</param>
    /// <param name="sort">오름차순 or 내림차순
    /// true이면 내림차순, false이면 오름차순</param>
    /// <returns>검색 결과</returns>
    public List<FixtureItemDataSearchTableData(int valuestring inputbool sort)
    {
        Func<FixtureItemDataboolcondition//검색 조건
        Func<FixtureItemDataobjectorder//정렬 기준
        string search = input.ToLower(); //소문자로 변환

        if (value < 0 || value >= searchDropdown.options.Count)
            return new List<FixtureItemData>();

        switch (searchDropdown.value) //Dropdown value에 따라 조건 설정
        {
            case 0// 제조사
                condition = item => item.company.ToLower().Contains(search);
                order = item => item.company;
                break;
            case 1// 조명 이름
                condition = item => item.name.ToLower().Contains(search);
                order = item => item.name;
                break;
            case 2// 채널
                condition = item => item.channelList.Count.ToString().Contains(search);
                order = item => item.channelList.Count;
                break;
            default//모드
                condition = item => item.mode.ToLower().Contains(search);
                order = item => item.mode;
                break;
        }

        int i = 1;
        IEnumerable<FixtureItemDataresult;

        if (isLibraryTab)
            result = originTableData.Where(condition);
        else
            result = favoriteTableData.Where(condition);

        result = sort ? result.OrderByDescending(order) : result.OrderBy(order);
        result = result.Select(x => new FixtureItemData
        {
            key = x.key,
            no = i++.ToString(),
            company = x.company,
            name = x.name,
            channelList = x.channelList,
            mode = x.mode,
            isSelect = x.isSelect
        });

        return result.ToList();
    }



댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...