【发布时间】:2020-08-12 06:32:18
【问题描述】:
我有这门课:
private void Get_properties<T>(ObservableCollection<T> collection)
{
List<string> longest_values = new List<string>();
var properties = typeof(T).GetProperties();
foreach (var prop in properties)
{
var prop_value = collection.OrderByDescending(y=> prop.GetValue(y,null)).FirstOrDefault();
longest_values.Add(prop_value);
}
//Now I want to do something with this List
foreach (var item in longest_values)
{
//..
}
}
我正在尝试通过 LINQ 查找集合中具有最长字符串值的每个属性的值。我该怎么做?
【问题讨论】:
-
代码中的注释中似乎有一个单独的问题:"// 仅返回类型名称(例如 My_project.Models.My_model)" - 是否与这个问题?
-
“不起作用”是什么意思?你期待什么?当然
string.Join必须将你的实际Type转换为一些string-表示,这是使用ToString完成的。 -
是否要按降序打印属性的实际值?
-
@Lucy82 这是否意味着您实际上只想考虑字符串属性而不是所有属性?
-
您的编辑完全没有帮助。您仍然没有提及您想用该代码实现什么,也没有提及“不工作”的实际含义。如果您只想将当前的 working 代码转换为 LINQ,则必须提供该 working 代码。您希望这里的任何人如何猜测您的问题到底是什么?
标签: c# linq generics propertyinfo