使用 linq 通过枚举填充 class 实例
Populate class instance by enum using linq
我有一个通用的 List<Person> PersonList
,其中包含 Persons
class Person
{
public string name {get ; set;}
public string lastName {get ; set;}
public decimal income {get ; set;}
}
我有一个returns收入的方法。
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 循环以最省力的方式做到这一点。
做这个的最好方式是什么?
谢谢!
您可以按枚举中的名称过滤PersonList
var a = PersonList.Where(x=> Enum.GetNames(typeof(SortednamesA)).Contains(x.name))
Enum.GetNames
将为您提供您在枚举中定义的名称,例如
Enum.GetNames(typeof(SortednamesA)
将为您提供以下数组 ["george", "jack", "etc"]
我有一个通用的 List<Person> PersonList
,其中包含 Persons
class Person
{
public string name {get ; set;}
public string lastName {get ; set;}
public decimal income {get ; set;}
}
我有一个returns收入的方法。
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 循环以最省力的方式做到这一点。 做这个的最好方式是什么?
谢谢!
您可以按枚举中的名称过滤PersonList
var a = PersonList.Where(x=> Enum.GetNames(typeof(SortednamesA)).Contains(x.name))
Enum.GetNames
将为您提供您在枚举中定义的名称,例如
Enum.GetNames(typeof(SortednamesA)
将为您提供以下数组 ["george", "jack", "etc"]