Linq到SQL方法中的条件赋值
我如何执行以下操作,在linq方法中根据条件分配新值,但保留所有结果Linq到SQL方法中的条件赋值,linq,Linq,我如何执行以下操作,在linq方法中根据条件分配新值,但保留所有结果 int x= 100; var results= from r in Results where r.id==id select r { if r.value==x set r.result="Found"} 您并不是真的想这样做——理想情况下,查询不应该有副作用。我的意思是你可以做到: 我通常会尽量不去想 请注意,这在LINQ到SQL等中确实不起作用。您并不是真的想这样做的-理想情况下,查
int x= 100;
var results= from r in Results where r.id==id select r
{ if r.value==x set r.result="Found"}
您并不是真的想这样做——理想情况下,查询不应该有副作用。我的意思是你可以做到: 我通常会尽量不去想
请注意,这在LINQ到SQL等中确实不起作用。您并不是真的想这样做的-理想情况下,查询不应该有副作用。我的意思是你可以做到: 我通常会尽量不去想
请注意,这在LINQ到SQL等中确实不起作用。LINQ不应以这种方式使用。我将迭代查询结果,然后更改它们
var results= from r in Results where r.id==id select r;
foreach (var r in results.ToList()) { if (r.value==x) r.result="Found"; }
Linq不应该以这种方式使用。我将迭代查询结果,然后更改它们
var results= from r in Results where r.id==id select r;
foreach (var r in results.ToList()) { if (r.value==x) r.result="Found"; }
也许最好再进行一次检查,这样可以保持查询的干净和无副作用
int x = 100;
List<Result> results = (from r in Results
where r.id == id
select r).ToList();
results.ForEach(r => r.result = r.value == x ? "Found" : "Not Found");
intx=100;
列出结果=(来自结果中的r)
其中r.id==id
选择r.ToList();
results.ForEach(r=>r.result=r.value==x?“已找到”:“未找到”);
可能最好进行第二次检查,这样您就可以保持查询干净且无副作用
int x = 100;
List<Result> results = (from r in Results
where r.id == id
select r).ToList();
results.ForEach(r => r.result = r.value == x ? "Found" : "Not Found");
intx=100;
列出结果=(来自结果中的r)
其中r.id==id
选择r.ToList();
results.ForEach(r=>r.result=r.value==x?“已找到”:“未找到”);
是否“无副作用”还包括不在同一方法中创建.Select(r=>newsomeobject(){id=r.id,name=r.name})等新对象?@zsharp:这不会影响现有对象,所以没关系。是否“无副作用”还包括不创建.Select(r=>newsomeobject(){id=r.id,name=r.name})等新对象使用相同的方法?@zsharp:这不会影响现有对象,所以没关系。