【问题标题】:How to get one property from Ilist<T> where other properties are True如何从其他属性为 True 的 Ilist<T> 获取一个属性
【发布时间】:2017-12-02 21:29:44
【问题描述】:

我正在尝试从 Ilist&lt;T&gt; 中选择 ID,其中 2 个布尔属性等于 true

myList.Select(t => t.IsValid && t.IsBalance).Distinct().ToList(); 

但是如果我想返回并只选择t.ID 其中t.IsValidt.IsBalance 怎么办?我找不到例子

谢谢

【问题讨论】:

    标签: c# list linq ienumerable


    【解决方案1】:

    使用Where for the filteringSelect for projection

    myList.Where(t => t.IsValid && t.IsBalance).Select(t => t.ID).Distinct().ToList(); 
    

    您也可以使用查询语法:

    var result = (from t in myList
                  where t.IsValue && t.IsBalance
                  select t.ID).Distinct().ToList();
    

    【讨论】:

    • 哦,知道为什么 IList 接口中的投影和过滤与典型的 SQL 操作如此混乱和倒退吗? hahah 通常我们先投影而不是过滤。无论如何,我非常感谢您的帮助,谢谢!
    • @napi15 - 在 SQL 中 select 用于确定要检索哪些字段,而不是任何记录过滤。此外,在 SQL 中,当您的查询执行时,它首先执行 where 子句(如果存在),然后才执行 select。
    • @napi15 SQL 是向后的,所以我猜常规的方式在习惯了向后的 SQL 方式后可能会让人感到困惑:]
    • @Slai 你说得对,因为当我学习数据库优化时,我了解了操作命令,但我发现每个人都把它倒退到今天,我终于意识到是 SQL 把它倒退了这次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 2015-09-30
    • 2012-03-22
    • 2014-06-02
    • 1970-01-01
    相关资源
    最近更新 更多