gpt4 book ai didi

C# LINQ - 将一个类的所有属性与同一类的不同实例进行比较的 Select 语句?

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

我有以下内容:

IEnumerable<Foo<T, TOther>> Items { get; set; }

public class Foo<T, TOther>
{
public TOther Bar { get; }

//Somewhere in the class Bar is generated/populated
}


public void DoSomething(TOther bar)
{
var foo = Items.Single(item => //Where all properties of item.Bar match bar);
}

那么,是否有一种很好的 LINQ 方法可以动态比较 item.Bar 的所有属性与 bar 的属性?还是我会因为使用反射而卡住?

最佳答案

您可以实现 IComparable(如 Oskar 所建议的那样),或者您需要使用反射。

如果您正在使用反射并且需要加速您的代码,那么您可以在运行时发出动态 IL ( System.Reflection.Emit )。参见 Dapper动态 IL 生成示例的来源。

关于C# LINQ - 将一个类的所有属性与同一类的不同实例进行比较的 Select 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6552650/

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