c# – Linq-to-sql错误:’int []’不包含’Contains’的定义

前端之家收集整理的这篇文章主要介绍了c# – Linq-to-sql错误:’int []’不包含’Contains’的定义前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有错误

错误2’int []’不包含’Contains’的定义,最好的扩展方法重载’System.Linq.Enumerable.Contains(System.Collections.Generic.IEnumerable,TSource)’有一些无效的参数

这是我的代码

  1. public partial class mymymy : System.Web.UI.Page
  2. {
  3. int[] validType = { 2,3,4,5,6,8,13,14,16,22 };
  4.  
  5. protected void Page_Load(object sender,EventArgs e)
  6. {
  7. }
  8.  
  9. protected void LinqDataSource_Selecting(object sender,LinqDataSourceSelectEventArgs e)
  10. {
  11. using (var dc = new soxMainDataContext())
  12. {
  13. var qry = from item in dc.LeaveRequests
  14. where **validType**.Contains(item.Type)
  15. && item.MgtApproval == null
  16. select item;
  17. e.Result = qry;
  18. }
  19. }
  20. }

解决方法

我强烈怀疑item.Type不是int.是枚举吗?如果是这样,请尝试显式转换:
  1. var qry = from item in dc.LeaveRequests
  2. where validType.Contains((int) item.Type)
  3. && item.MgtApproval == null
  4. select item;

或者,作为点符号:

  1. var query = dc.LeaveRequests.Where(item => validType.Contains((int) item.Type)
  2. && item.MgtApproval == null);

猜你在找的C#相关文章