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

时间:2015-07-15 21:00:17

标签: 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]
        };

正如您所看到的,对于Col3Col4,我需要调用一个函数来返回一个字符串数组,其中string[1]用于Col3和{{1} }是string[0]

我想知道是否有任何方式可以拨打Col4一次并将其用于Calculate._RPMajmoSoodeGhest()Col3

1 个答案:

答案 0 :(得分:4)

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

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]
         };