gpt4 book ai didi

c# - 按另一个列表中的值匹配对对象列表进行排序

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

我有两个(几乎总是)由不同类型的对象组成但具有一些共同属性(并且总是唯一值)的相等列表:

List<Object1> list1 = new List<Object1>();
List<Object2> list2 = new List<Object2>();

然后我需要根据属性与 list1 的匹配顺序对 list2 进行排序。

示例:

list1:

0, "FMS", prop2, prop3;
1, "KFF", prop2, prop3;
2, "FOA", prop2, prop3;
3, "RDA", prop2, prop3;
4, "KFP", prop2, prop3;

list2:

Before:
991, prop1, "RDA", prop2, prop3, etc;
992, prop1, "FMS", prop3, prop4, etc;
993, prop1, "KFF", prop3, prop4, etc;
994, prop1, "KFP", prop3, prop4, etc;
995, prop1, "FOA", prop3, prop4, etc;

After:
992, prop1, "FMS", prop3, prop4, etc;
993, prop1, "KFF", prop3, prop4, etc;
995, prop1, "FOA", prop3, prop4, etc;
991, prop1, "RDA", prop3, prop4, etc;
994, prop1, "KFP", prop3, prop4, etc;

我需要类似的东西

list2.OrderBy(x => Where(list1.prop1 == list2.prop2))

我希望这已经足够清楚了。

最佳答案

使用FindIndex :

list2.OrderBy(x => list1.FindIndex(y => y.prop1 == x.prop2));

注意,如果没有找到符合predicate的item,你会得到-1,所以所有这些item都会堆在最上面(当然你可以写代码完全忽略它们,或者往下堆在底部,或其他什么地方。

关于c# - 按另一个列表中的值匹配对对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50320250/

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