编程语言
首页 > 编程语言> > C#List get返回排序列表

C#List get返回排序列表

作者:互联网

我所拥有的基本上是:

public class Object{
    public bool IsObjectValid { set; get; }
}

public class MyThing{
    public List<Object> Objects { set; get; }
}

我想做的事:

public class ObjectsFiltered{
    public List<Object> ValidObjects{
        get{
            var list = LFs.Sort<_LF> where (IsObjectValid == true);
            return list;
        }
    }
}

我知道必须有一种方法来整理列表,过滤掉布尔值true / false.我似乎无法完全将自己的头缠在Linq上.我似乎找不到一个尖叫“啊哈!”的教程.关于我的Linq Lambda:/

我宁愿只返回一个子集,只保留一个“对象”活着……而不是我当前的多组列表设置.吻.

最终,我将使用布尔切换在WPF表单上提供TreeView.

澄清:我认为目标是拥有一个列表(列表对象)和几个属性,这些属性显示对象的过滤版本.而不是拥有Objects,ObjecstValid,ObjectsInvalid,ObjectsSomeOtherRuleSet …每个都有一个不同的List …

我想要一个列表来统治所有这些…,并根据需要具有返回列表变体的属性.

解决方法:

您可以使用LINQ:

public IEnumerable<Object> ValidObjects{ 
    get{ 
        return LFs.Where(item => item.IsObjectValid)
                  .OrderBy(item => item.SomeProperty); 
    } 
} 

除非您需要List< T&gt ;,否则最好返回IEnumerable< T&gt ;,这样就不会将其全部存储在内存中. Lambda表达式项目=> item.SomeProperty是一个内联函数,它接受一个名为item的参数并返回item.SomeProperty. (参数和返回类型由编译器推断)

标签:list,c-4-0,linq,c
来源: https://codeday.me/bug/20191105/1998150.html