LINQ操作List<T>

LINQ操作List<T>主要包括:

1.筛选

List<string> stcdList = stcdArray.ToList<string>()
                .FindAll(new Predicate<string>(stcd => stcd.Contains("stcd_")))
                .Select(stcd => stcd.Substring(5))
                .ToList<string>();

2.拼接

List<string> suggestion = new List<string>();
string sg_font_details = suggestion.Aggregate((s1, s2) => string.Format("{0},{1}", s1, s2)).ToString();

3.分组统计

public class HomeStat
    {
        public string adnm { get; set; }
        public string ProCount { get; set; }
        public string countCompare { get; set; }
        public string perCount { get; set; }
        public string dayCount { get; set; }
        public string perDayCount { get; set; }
    }
List<HomeStat> chsList = new List<HomeStat>() {... };
var query = hsList.GroupBy(t => t.adnm).Select(p => new
                    {
                        adnm = p.Key,
                        dayCount = p.Sum(x => double.Parse(x.dayCount)),
                        proCount = p.Select(x => x.projectID).Distinct().Count(),
                        perCount = p.Sum(x => double.Parse(x.perCount)),
                        perDayCount = p.Sum(x => double.Parse(x.perDayCount))
                    });

4.分组拼接

public class Service
    {
        public string Month { get; set; }
        public string Content { get; set; }
    }
List<Service> serList = new List<Service>(){...};
var query = serList.GroupBy(t => t.Month).Select(g => g.Aggregate((s1, s2) =>
                new Service { Month = g.Key, Content = s1.Content + "," + s2.Content }))
                .OrderByDescending(t => t.Month);

 

posted on 2015-07-20 14:12  YuanSong  阅读(7742)  评论(0编辑  收藏  举报

导航