我可以通过弄乱我的代码库的其他部分来解决这个问题,但我想我会问是否有更简单的方法来做到这一点.
我有以下linq查询.
(select a in objectA
where a.type = 1
select new
{
Id = a.Id,
Field2 = <needThisValue>
Field3 = <needThisValue>
}).ToList();
Run Code Online (Sandbox Code Playgroud)
现在需要通过接受a的方法的变量提供两个"needThisValues",例如
TestMethod(object a, out string stringA, out string StringB)
Run Code Online (Sandbox Code Playgroud)
那么无论如何我可以巧妙地从linq语句中调用这个方法来填充这两个字段?
提前致谢.
我不认为您可以在查询表达式中执行此操作,但您可以使用块lambda语句执行此操作:
var query = objectA.Where(a => a.type == 1)
.Select(a => {
string Field2;
string Field3;
TestMethod(a, out Field2, out Field3);
return new {
a.Id, Field2, Field3
};
});
.ToList();
Run Code Online (Sandbox Code Playgroud)
我想我个人更喜欢使用返回元组的方法,然后使用它,但上面应该可以工作.