我有一个包含人物的通用List<Person> PersonList
class Person
{
public string name {get ; set;}
public string lastName {get ; set;}
public decimal income {get ; set;}
}
我有一种方法可以收回收入。
decimal GetPersonIncome(string name)
我的枚举中包含了我要过滤的名称:
enum SortednamesA
{
george,
jack,
etc
}
enum SortednamesB
{
bill,
john,
etc
}
我想根据每个枚举的名称创建SortedPersonsIncome
个实例。
Class SortedPersonsIncome
{
public SortedPerdons(string customListname,
decimal sortedPersonIncomeA,
decimal sortedPersonIncomeB)
}
所以它会是这样的:
SortedPersonsIncome sortedA = new SortedPersonsIncome(
"newSortedPerson",
GetPersonIncome(georgeFromEnumA),
GetPersonIncome(jackFromEnumA))
我想用linq或foreach循环以最少的努力做到这一点。 做这个的最好方式是什么?
谢谢!
答案 0 :(得分:0)
您可以按枚举
中的名称过滤PersonList
var a = PersonList.Where(x=> Enum.GetNames(typeof(SortednamesA)).Contains(x.name))
Enum.GetNames
会为您提供您在枚举中定义的名称,例如
Enum.GetNames(typeof(SortednamesA)
将为您提供以下数组["george", "jack", "etc"]