我正在尝试将其重构为查询:

 while (IsRunning)
 {

 ...

 //specialPoint is a string
 foreach (PointTypeItem pointTypeItem in PointTypeItemCollection)
    {
        foreach (PointItem pointItem in pointTypeItem.PointItemCollection)
        {
            //Replace the point name with point ID
            if (specialPoint.Contains(pointItem.PointName))
            {
                replacedCode += s.Replace(specialPoint , pointItem.ID);
                //I want to go back to the beginning point of while (IsRunning) from here
                //Simply putting continue; here won't work
            }
        }
    }
 }


我基本上想将其转换为LINQ查询,但是我坚持写一个。实际上,我什至不确定我是否朝着正确的方向前进。

var results = from pointTypeItem in ddcItem.PointTypeItemCollection
              where pointTypeItem.PointItemCollection.Any(pointItem => pointName.Contains(pointItem.PointName))
              select //What do I select?

最佳答案

var results = from pointTypeItem in ddcItem.PointTypeItemCollection
              from pointItem in pointTypeItem.PointItemCollection
              where specialPoint.Contains(pointItem.PointName)
              select pointItem.ID;


得到一个IEnumerable<the type of pointItem.ID>

关于c# - 将嵌套循环重构为单个LINQ查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13474133/

10-11 14:24