gpt4 book ai didi

C# List OrderBy 问题

转载 作者:行者123 更新时间:2023-11-30 21:13:10 25 4
gpt4 key购买 nike

我在使用 WPF 时遇到了有关在列表中排序的问题。我找到了它使用 OrderBy( T => T.[引用它进行排序的字段]) 的示例例如

List<Contact> contacts = new List<Contact>();
contacts.OrderBy(Contact => Contact.PhoneNumber)

它完美地工作。

但是,如果我不知道类型,甚至不知道那个类型中的字段,我应该如何实现排序功能呢?

比如:我应该在 OrderBy(??? => ????.?????) 中输入什么

事实上,我想做一个通用的 GridView,当用户点击其中一个标题时,它会按相应的列对整个列表进行排序。

非常感谢!

最佳答案

有两种选择。

  1. 使用反射收集可以排序的公共(public)属性或
  2. 使用启用的类(一个很好的例子是 DataTable)您通过索引访问值,即。 contacts.OrderBy(联系人=>联系人[3])

另见 c# properties as array notation .

选项 1 展开:

获取公共(public)属性数组似乎是个不错的选择,而且相当容易:

var propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public | BindingFlags.Instance);

生成的数组可用于填充 gridView 的列并用于排序:

contacts.OrderBy(Contact => propertyInfos[0].GetValue(Contact, null));

关于C# List OrderBy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978002/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com