答案在编辑解决以下的LinQ相关,从Dictionary对象
滤波结果我有这样一段代码
Dictionary<Merchant, int> remaingCards = CardService.GetRemainingCardsNumber(int.MaxValue, 0).Result;
GetRemainingCardsNumber返回客商Id和Name属性,并匹配卡对象数字为Int。
现在,假设我想过滤基于Merchant对象内的Name属性的字典。我这样做:
cardmodel.MerchantRemainingCards = from Dictionary<Merchant, int> filterRemaining in cardserv.GetRemainingCardsNumber(int.MaxValue, 0).Result
where filterRemaining.Keys.FirstOrDefault().Name.Contains(merchantNameFilter)
select filterRemaining;
但显然它不工作,因为我不熟悉字典类型。
- 解决在这里 -
cardmodel.MerchantRemainingCards = cardserv.GetRemainingCardsNumber(int.MaxValue, 0).Result
.Where(e => e.Key.Name.ToLower().Contains(merchantNameFilter.ToLower()))
.ToDictionary(e => e.Key, e => e.Value);
只需将它转换回字典。
一个很好的_become_熟悉的方式字典类型是阅读文档:[Dictionary](http://msdn.microsoft.com/en-us/library/xfhwa508.aspx) –
2012-03-28 03:54:33