首页 > 解决方案 > 如何理解这个 Linq 查询?

问题描述

我遇到了下面的 linq 查询,但我无法理解它。它似乎有2个from陈述。

var foo = (from XmlNode listingSource in listingSources
          from idxRule in idxRules
          where idxRule.IDXRuleID == idxRuleId && idxRule.IsEnabled && idxRule.ListingSourceID == TrioXml.GetInt32Value(listingSource, "ListingSourceID")
          select TrioXml.GetInt32Value(listingSource, "ListingSourceID"));

2from语句是否表示内部和外部 for 循环?如果我将它重写为循环,它会是这样吗?

var foo = new List<int>;
foreach (XmlNode listingSource in listingSources) {
  foreach (IDXRule idxRule in idxRules) {
    if (idxRule.IDXRuleID == idxRuleId && idxRule.IsEnabled && idxRule.ListingSourceID == TrioXml.GetInt32Value(listingSource, "ListingSourceID")) {
      foo.Add(TrioXml.GetInt32Value(listingSource, "ListingSourceID"));
    }
  }
}

标签: c#linq

解决方案


推荐阅读