C#項目技術總結(一)

1.List<int> to  string[] 

List<int> recommendSubjectCodes = GetRecommendSubjectListByResult(result, provinceCode);
string[] ids = Array.ConvertAll(recommendSubjectCodes.ToArray(), new Converter<int, string>(a => Convert.ToString(a)));

2.平均分:

raiInfo.avgScore = Math.Round((raiInfo.interest + raiInfo.ability) / 2, 2);

3.委託:

List<Func<ResultAnalyseInfo, bool>> quadrantCalcFuncList = new List<Func<ResultAnalyseInfo, bool>>
            {
                (p)=> p.interest >= 3 && p.ability >= 3,    //第一象限
                (p)=> p.interest >= 3 && p.ability < 3,    //第二象限
                (p)=> p.interest < 3  && p.ability >=3  //第四象限
            };
public List<string> CalcQuadrantList(List<ResultAnalyseInfo> subjectList, string firstSubject, int needKemuCount, List<Func<ResultAnalyseInfo, bool>> funcList)
        {
            var resultSubjects = new List<string>();
            foreach (var func in funcList)
            {
                var quadrantSubjects = new List<string>();
                List<ResultAnalyseInfo> quadrantList = subjectList.Where(item => func(item)).ToList();

                if (quadrantList.Any() && quadrantList.Count <= needKemuCount)
                    quadrantSubjects.AddRange(quadrantList.Select(p => p.name).ToList());

                if (quadrantList.Count > needKemuCount)
                {
                    //開始相同得分優先級算法
                    quadrantSubjects.AddRange(SortOverSubjects(quadrantList, firstSubject, needKemuCount));
                }
                needKemuCount = needKemuCount - quadrantSubjects.Count;

                resultSubjects.AddRange(quadrantSubjects);

                if (needKemuCount <= 0) break;
            }

            return resultSubjects;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章