gpt4 book ai didi

c# - Linq 按不同值搜索

转载 作者:太空狗 更新时间:2023-10-29 22:33:00 24 4
gpt4 key购买 nike

我有这样一个类:

class Person
{
private String sName;
private String sPhone;
private String sAge;
private String sE_Mail;
// … code …
}

而且我必须根据从用户那里收到的值进行搜索,它可能是此类的任何属性。我也有这个:

public IEnumerable<Person> SearchByPhone(string value)
{
return from person in personCollection
where person.**SPhone** == value
select person;
}

我有四个这样的方法,唯一的区别是属性。拜托,任何人都可以告诉我如何仅用一种方法或不可能做到这一点吗?谢谢。

最佳答案

无需编写单独的方法。一个方法就足够了:

public IEnumerable<Person> Search<T>(T value, Func<Person,T> mapFunc)
{
return from person in personCollection
where mapFunc(person).Equals(value)
select person;
}

然后这样调用:

Search("SOME VALUE", input=>input.sPhone);  //sPhone must be public
Search("SOME VALUE", input=>input.sAge); //sAge must be public

关于c# - Linq 按不同值搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15709640/

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