【问题标题】:Can't use 'contains' in LINQ [closed]不能在 LINQ 中使用“包含”[关闭]
【发布时间】:2012-08-13 16:17:29
【问题描述】:
string last = url.Substring(url.LastIndexOf('/') + 1);
var provisionedSiteRequestRep = provisioningRequestRepository.SelectFirst(new WhereSpecification<ProvisioningRequest>(result => result.SiteUrl.Contains(last.ToString())));

有时我得到 last.tosting() 的空值,所以我得到这个代码的异常如何解决这个问题?

【问题讨论】:

  • 实际上,您有什么问题?您的问题似乎缺少一部分......
  • 在一个不相关的注释上,你为什么在 string 上打电话给 .ToString()

标签: c# linq lambda


【解决方案1】:

你在这条线上遇到了问题

 (result => result.SiteUrl.Contains(last.ToString());

您能否检查一下 SiteUrl 是否为字符串类型,否则它对您不起作用。 因为 last 是字符串类型, Contains 是字符串类型支持的方法 ...

否则最后需要是可枚举的集合,并且siteurl也是可枚举的集合,而不是仅支持包含

【讨论】:

  • 为什么sould SiteUrl 必须是字符串?
  • @BigYellowCactus - 因为 last 是字符串类型, Contains 是字符串类型支持的方法 ....否则 last 需要是 enubrable 集合,siteurl 也是可枚举集合,而不是仅支持 Contains 跨度>
  • 你的说法还是错的。 SiteUrl 可以是 Collection&lt;string&gt;List&lt;string&gt;IEnumerable&lt;string&gt; 或任何其他提供 Contains 方法本身或由于扩展方法的类型。
猜你喜欢
  • 2018-04-18
  • 1970-01-01
  • 2013-08-06
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 2014-06-25
  • 2021-02-12
相关资源
最近更新 更多