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

How can store variable while select query in LINQ?

我有一个这样的 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]
        };

如您所见,对于 Col3Col4 我需要调用一个函数 returns 一个字符串数组,其中 string[1] 用于 Col3string[0] 用于 Col4.

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

您可以使用 '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]
         };