在linq语句中输出变量

mat*_*lin 3 c# linq

我可以通过弄乱我的代码库的其他部分来解决这个问题,但我想我会问是否有更简单的方法来做到这一点.

我有以下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语句中调用这个方法来填充这两个字段?

提前致谢.

Jon*_*eet 6

我不认为您可以在查询表达式中执行此操作,但您可以使用块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)

我想我个人更喜欢使用返回元组的方法,然后使用它,但上面应该可以工作.