gpt4 book ai didi

c# - Linq 中的通用查询

转载 作者:行者123 更新时间:2023-11-30 23:29:48 24 4
gpt4 key购买 nike

我想在 wpf 中进行通用搜索 UserControl。我希望它获得对象集合和要搜索的属性名称。问题是我不能使用泛型,因为调用搜索函数的代码也不知道类型。

有办法实现吗?或者以某种方式查询位于另一种类型之下的对象?

最佳答案

考虑这个例子。

interface IFoo
{

}
class Bar1 : IFoo
{
//interface implementations
public string Property1 { get; set; }

public string myProperty1 { set; get; }
}

class Bar2 : IFoo
{
//interface implementations
public string Property1 { get; set; }

public string myProperty1 { set; get; }
}


//Search the list of objects and access the original values.
List<IFoo> foos = new List<IFoo>();
foos.Add(new Bar1
{
Property1 = "bar1",
myProperty1 ="myBar1"
});
foos.Add(new Bar1());

foos.Add(new Bar2());
foos.Add(new Bar2());

//Get the objects.
foreach (var foo in foos)
{
//you can access foo directly without knowing the original class.
var fooProperty = foo.Property1;

//you have to use reflection to get the original type and its properties and methods
Type type = foo.GetType();
foreach (var propertyInfo in type.GetProperties())
{
var propName = propertyInfo.Name;
var propValue = propertyInfo.GetValue(foo);
}
}


var result = list.Where(a => a.propertyName);

关于c# - Linq 中的通用查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238238/

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