• 如何在集合中巧用Where来查找相关元素


       在我们的项目中我们经常会查找一些集合中的重要元素,当然我们可以使用常规的foreach循环和if语句来查询,但是我们要学会使用System.Linq命名空间下面的静态类Enumerable下面的静态方法来进行相关查询,public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);其中 Func<TSource, bool> predicate是一个返回bool类型的一个委托,第一个参数是要查询的数据源,比如在下面的代码中:

    if (Layouts.Where(x => x.Layout.UnitToken == itm.UnitToken).Count() == 0) 其中Layouts是ObservableCollection<Models.LayoutInfo>类型的变量 

    public System.Collections.ObjectModel.ObservableCollection<Models.LayoutInfo> Layouts
    {
      get { return _layouts; }
          set
              {
          if (value != _layouts)
          {
            _layouts = value;
            OnPropertyChanged("Layouts");
          }
        }
    }  

    另外还举出其它的类型的例子:

    var config = planConfig.Where(x => x.Product == itm.GetType().FullName).SingleOrDefault() ?? null;如果无法获取到唯一或者默认值则返回null值

    其中 planConfig代表的是一个类的数组,所以数组类型也是可以的。

    还有有时我们会从从某一个集合中查到多个元素,然后获取第一个元素,这个可以用下面的这种方式来进行:

    TaskPools.Where(x => x.TaskEntity.Cancellation.Token == CancellationToken).ToList()[0].TaskEntity;其中TaskPools是一个ObservableCollection<>类型。

  • 相关阅读:
    让ios支持openssl
    数组
    NSValue
    音频
    NSObject分类
    NSJSONSerialization
    Java并发编程-深入探讨synchronized实现原理
    设计模式-挖掘工厂模式应用场景-全面分析工厂模式原理
    Spring插件安装
    Java并发编程-深入Java同步器AQS原理与应用-线程锁必备知识点
  • 原文地址:https://www.cnblogs.com/seekdream/p/5051669.html
Copyright © 2020-2023  润新知