我一直在试图将下面的foreach语句转换为LINQ语句,但似乎无法将其包围。任何帮助将受到欢迎。IDictionary <string,IDictionary <string,ICollection <string> >>转至LINQ
IDictionary<string, IDictionary<string, ICollection<string>>> Highlights { get; set; }
foreach (var r in matchingProducts.Highlights)
{
string szKey = r.Key;
var ar = r.Value.ToArray();
foreach (var s in ar)
{
string szCat = s.Key;
var sr = s.Value.ToArray();
foreach (var t in sr)
{
string szName = t;
//todo: update the corresponding matchingProduct records
// using the return values from szKey, szCat, szName
}
}
}
matchingProducts
public class Product {
[SolrUniqueKey("id")]
public string Id { get; set; }
[SolrField("sku")]
public string SKU { get; set; }
[SolrField("name")]
public string Name { get; set; }
[SolrField("manu_exact")]
public string Manufacturer { get; set; }
[SolrField("cat")]
public ICollection<string> Categories { get; set; }
[SolrField("features")]
public ICollection<string> Features { get; set; }
[SolrField("price")]
public decimal Price { get; set; }
[SolrField("popularity")]
public int Popularity { get; set; }
[SolrField("inStock")]
public bool InStock { get; set; }
[SolrField("timestamp")]
public DateTime Timestamp { get; set; }
[SolrField("weight")]
public double? Weight { get; set;}
}
有问题的字典是从SolrNet的SOLR库C#,目的是采取高亮字典并用高亮部分的文本替换相应的结果文本。我不想让代码复杂化。 – Vince 2011-05-03 23:46:45