gpt4 book ai didi

c# - 通过 lambda 表达式传递属性,并对其属性进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 19:59:14 25 4
gpt4 key购买 nike

我有一个 ISomeType 列表,其中 T 至少包含一个 IConvertibleProperty 类型的属性。示例:

IConvertibleProperty
{
string PropertyA { get; set; }
string PropertyB { get; set; }
// etc
}

public class SomeTypeA : ISomeType
{
public ConvertibleProperty PropertyX { get; set; }
// etc
}

我需要创建一个通用函数,我可以按以下方式调用它:

CustomMethod(list, x => x.PropertyX);

并能在其中实现下一次排序:

protected void CustomMethod<T, TKey>(IList<T> list, Func<T, TKey> expr) where T : ISomeType where TKey : IConvertibleProperty
{
// example of non-generic sorting (in this case expr = x.PropertyX)
var sortedList = list.OrderBy(x => x.PropertyX.PropertyA).ThenBy(x => x.PropertyX.PropertyB).ToList();

// rest of the code
}

这可能吗?

最佳答案

我想你正在寻找这个:

var sortedList = list.OrderBy(x => expr(x).PropertyA)
.ThenBy(x => expr(x).PropertyB)
.ToList();

关于c# - 通过 lambda 表达式传递属性,并对其属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113910/

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