【问题标题】:Sort an ObservableCollection of Expando Objects对 Expando 对象的 ObservableCollection 进行排序
【发布时间】:2011-10-04 05:56:07
【问题描述】:

是否可以订购可扩展的 expando 对象集合。

我找到了 this 关于如何对 ObservableCollection 进行排序的信息。但是,我需要知道 lambda 表达式中的属性名称。我不知道这一点,因为 expando 对象的属性是动态的。

【问题讨论】:

    标签: c# sorting observablecollection


    【解决方案1】:

    您的 ExpandoObject 最终需要实现 IComparable<T>IComparable 才能使用您引用的链接中的技术(假设您指的是已接受答案中提到的文章)。

    如果你指的是 ExpandoObject 的this version,它并没有实现这两个接口。因此,直接的答案是实现这两个接口之一。

    从根本上说,您需要了解如何比较两个不同的 ExpandoObject 实例,才能知道哪个在另一个之前排序。

    如果您的 ExpandoObjects 是完全动态的(而不是说具有某些动态扩展的公共属性),那么您打算如何在逻辑上比较两个实例以进行排序?如果您可以提供有关您的问题的更多详细信息,我可以提供更具体的答案。

    【讨论】:

    • 我的 expando 对象是完全动态的。我们使用它们来表示从数据库中检索到的数据。我只想根据用户想要的任何列对对象进行升序或降序排序。数据库中的一列是 expando 对象的一个​​属性
    • 在这种情况下,您可以实现 IComparable。您可以根据这些值的(字符串)名称获取动态属性值,例如由用户指定。见stackoverflow.com/questions/4939508/…
    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 2013-12-23
    • 2013-05-09
    • 1970-01-01
    相关资源
    最近更新 更多