【发布时间】:2019-03-12 09:48:21
【问题描述】:
我们有一些用户数据,在某个时候,我们想为满足某些条件的用户修改用户数据值。 例如:当用户在线时间>100小时,我们可以给他10个金币奖励。
现在我正在使用以下代码对数据进行调整
<!-- language: c# -->
public void UserBounds(List<userdata> DataList)
{
DataList.Where(p => p.Onlinetime > 100).Select(x =>
{
x.Bound = x.Bound + 10;
return x;
}).ToList();
DataList.Where(p => p.isFirstLogin).Select(x =>
{
x.Bound = x.Bound + 1;
return x;
}).ToList();
}
那么现在标准要高得多,我想使用字符串表达式来执行这些操作,我将过滤器和奖励放在 List.like sql where 和 update syntax 上。
例如
|----------------------|------------------|
|过滤器 |界 |
|----------------------|------------------|
|在线时间>100 |绑定 = 绑定 + 10 |
|------------------------------------|--------|
| isFirstLogin |绑定 = 绑定 + 5 |
|------------------------------------|--------|
现在我使用 system.linq.dynamic,它可以使用过滤器字符串作为 where 表达式,但是我如何从边界字符串生成表达式语句。比如
"Bound = Bound + 10",表达式为
x =>{
x.Bound = x.Bound + 10;
return x;
};
谢谢大家。
【问题讨论】:
标签: c# dynamic lambda expression statements