C#对象集合中,计算相同类型的个数

      /// <summary>
        ///需求:对象集合中,计算相同类型的个数
        ///思路:1,2,3,1,2,1
        ///=>    类型:1,2,3
        ///=>    数量:3,2,1
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {            
            //1、初始化集合,并赋值
            List<TestDto> inputList = new List<TestDto>();
            inputList.Add(new TestDto(1));
            inputList.Add(new TestDto(2));
            inputList.Add(new TestDto(3));
            inputList.Add(new TestDto(1));
            inputList.Add(new TestDto(2));
            inputList.Add(new TestDto(1));

            //2、挑出类型
            List<int> typeList = new List<int>();
            foreach (var item in inputList)
            {
                if (!typeList.Contains(item.Type))
                {
                    typeList.Add(item.Type);
                }
            }
            //3、对象集合
            List<TestDto> resultList = new List<TestDto>();
            foreach (var type in typeList)
            {
                TestDto testDto = new TestDto();
                testDto.Qty = 0;
                testDto.Type = type;
                resultList.Add(testDto);
            }
            //4、计算数量
            for (int i = 0; i < typeList.Count; i++)
            {
                foreach (var item in inputList)
                {
                    if (typeList[i] ==item.Type)
                    {
                        resultList[i].Qty += 1;
                    }
                }
            }
        }

TestDto实体

 public class TestDto
    {
        public TestDto()
        {
        }

        public TestDto(int type)
        {
            this.Type = type;
        }

        public int Type { get; set; }

        public int Qty { get; set; }

        
    }

完整代码详情请移步我的github:https://github.com/gordongaogithub/GetCountFromList

posted on 2018-11-01 18:28  技术高超  阅读(440)  评论(0编辑  收藏  举报