如何在运行时动态创建linq代码并获得结果

时间:2013-07-02 08:47:04

标签: c# linq build

我有这个返回列总和的LINQ代码。 我在这个表中有10个列,名称为:Role1,Role2,Role3到Role10。

如何在运行时动态创建LINQ代码,为所有列运行此代码并获取结果而不重复代码?

例如:

decimal result = 0;
for(int i=0; i <=10; i++)
{
  result += STList.Where(c => c.Row_Role[i].ID == row.ID).Sum(p => p.Role[i]Current);
}

2 个答案:

答案 0 :(得分:0)

你去吧

decimal result = 0;
result = STList.Where(c => c.Row_Role.Select(p=>p.ID).Contains(row.ID)).Sum(c => c.Row_Role.Select(p=>p.Current));

答案 1 :(得分:0)

我认为您正在尝试使用动态结果来获取linq查询。

请参阅here将解决大多数动态linq问题。