在 LINQ 中选择查询时如何存储变量?

mos*_*her 4 c# linq select global-variables

我有一个像这样的 LINQ 查询:

var q = from p in m.TblOzvs.AsEnumerable()
        where (p.OzviyatNumber == txtSearch.Text) 
        select new mylist
        {                     
            Col1 = p.OzviyatNumber.ToString(),
            Col2 = p.Name,
            Col3 = Calculate._RPMajmoSoodeGhest(p.OzviyatNumber)[1],
            Col4 = Calculate._RPMajmoSoodeGhest(p.OzviyatNumber)[0]
        };
Run Code Online (Sandbox Code Playgroud)

正如您所看到的, forCol3Col4我需要调用一个返回字符串数组的函数,其中string[1]is forCol3string[0]is for Col4

我想知道是否有任何方法可以调用Calculate._RPMajmoSoodeGhest()1 次并将其用于Col3Col4

Has*_*Psi 5

您可以使用“let”来定义可在查询的“select”部分中引用的数量:

var q = from p in m.TblOzvs.AsEnumerable()
         where (p.OzviyatNumber == txtSearch.Text) 
         let calcVal = Calculate._RPMajmoSoodeGhest(p.OzviyatNumber)
         select new mylist
         {                     
             Col1 = p.OzviyatNumber.ToString(),
             Col2 = p.Name,
             Col3 =  calcVal[1],              
             Col4 = calcVal[0]
         };
Run Code Online (Sandbox Code Playgroud)