List 操作

var customerList = new List<Customer>{
new Customer {Name = "a", Score =30},
new Customer {Name = "a", Score =35},
new Customer {Name = "b", Score =20},
new Customer {Name = "c", Score =50},
new Customer {Name = "b", Score =60},
new Customer {Name = "a", Score =80},
};
// 返回的是分組後,每組個數大於1的list集合
var lll = customerList.GroupBy(x => x.Name).Where(t => t.Count() > 1).SelectMany(x => x).ToList();
//分組後,獲取每組score最大的數據重新組合成集合
List<Customer> customers = customerList.GroupBy(t => t.Name).SelectMany(a => a.Where(b => b.Score == a.Max(c => c.Score))).ToList();
//list增加排名序號++y 是從1開始,y++是從0開始
var ncl = customerList.Select((x, y) => new CustomerRank { Rank = ++y, Name = x.Name, Score = x.Score });

public class Customer
{
public string Name;
public int Score;
}
public class CustomerRank : Customer
{
public int Rank { set; get; }
}

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