集合扩展方法

C# 集合扩展方法 Where()、Select()、Max()、Min()、Sum()、Average()

List<int> list = new List<int>();
list.Add(6);
list.Add(3);
list.Add(1);
list.Add(2);
list.Add(9);
list.Add(0);

// Where 对数据按照lambda表达式进行过滤
IEnumerable<int> data1 = list.Where(x => x > 2);
foreach (int item in data1)
{
    Console.WriteLine(item);
}

// Select 对集合中的数据进行处理,生成一个新的集合,集合长度不变
IEnumerable<string> data2 = list.Select(x => "hello " + x);
foreach (string item in data2)
{
    Console.WriteLine(item);
}

int max = list.Max();//最大值
int min = list.Min();//最小值
int sum = list.Sum();//求和
double avg = list.Average();//平均值

C# 集合扩展方法 Count()、Any()、OrderBy()、OrderByDescending()、Single()、SingleOrDefault()、First()、FirstOrDefault()

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
    List<Employee> list = new List<Employee>();
    list.Add(new Employee { Id = 1, Name = "aaa", Age = 14 });
    list.Add(new Employee { Id = 2, Name = "bbb", Age = 10 });
    list.Add(new Employee() { Id = 3, Name = "ccc", Age = 19 });
    list.Add(new Employee() { Id = 4, Name = "ddd", Age = 9 });
    list.Add(new Employee() { Id = 5, Name = "eee", Age = 11 });

    //Count()方法:返回满足条件的数量
    int i = list.Count(p => p.Age > 13);
    int j = list.Count(p => p.Age > 13 && p.Id > 3);
    Console.WriteLine($"i={i}  j={j}");

    //Any()方法:是否至少有一条数据
    bool b = list.Any(p => p.Id > 3);
    Console.WriteLine(b);

    //OrderBy():根据某个键对数据进行 升序排序
    var newList1 = list.OrderBy(p => p.Age);

    //OrderByDescending():根据某个键对数据进行 降序排序
    var newList2 = list.OrderByDescending(p => p.Age);

    //OrderBy():用Guid或者随机数进行 随机排序
    var newList3 = list.OrderBy(p => Guid.NewGuid());
    Random rnd = new Random();
    var newList4 = list.OrderBy(p => rnd.Next());

    //Single():有且只有一条满足要求的数据,有0条 或 多条 都会抛异常
    Employee e1 = list.Single(p => p.Id == 1);

    //SingleOrDefault():最多只有一条满足要求的数据;有0条返回这个类型的默认值(0、false、null);有多条会抛异常
    Employee e2 = list.SingleOrDefault(p => p.Id == 0);

    //First():至少有一条,返回第一条;有0条会抛异常
    Employee e3 = list.First(p => p.Id > 0);

    //FirstOrDefault():至少有一条,返回第一条;有0条返回这个类型的默认值(0、false、null)
    Employee e4 = list.FirstOrDefault(p => p.Id > 0);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值