【问题标题】:Filter lists by only objects that have property values that exist in every list仅按具有每个列表中存在的属性值的对象过滤列表
【发布时间】:2015-03-20 11:12:02
【问题描述】:

所以我有一个Dictionary<DateTime, List<MyObject>>

public class MyObject
{
    double A {get; set;}
    double B {get; set;}
    double C {get; set;}
}

基本上我需要的是找到每个列表中至少一个MyObject 中存在的值对AB(不关心C)。

我可以在彼此之上做很多foreach,但我觉得这可能不是最有效的方式。

有什么想法吗?

【问题讨论】:

    标签: c# .net performance list dictionary


    【解决方案1】:

    你可以试试这样的:

    var result = dictionary.Select(x=> x.Value
                                        .Select( y=> new 
                                               { 
                                                   A = y.A, 
                                                   B = y.B
                                               }).FirstOrDefault()
                           ).ToList();
    

    dictionary 是您的字典。

    【讨论】:

    • 让我试一试,看起来很干净。我喜欢它。
    • @slandau 确定。请让我知道这是否适合您的需要。谢谢
    • 如果项目不在其中一个列表中,这不会返回一堆默认动态对象吗? @克里斯托斯
    猜你喜欢
    • 2013-06-01
    • 2020-07-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2015-03-25
    • 2018-10-19
    • 2019-06-08
    相关资源
    最近更新 更多