完整的錯誤代碼:錯誤 CS1929 'string[]' 不包含 'Contains' 的定義,并且最佳擴展方法重載 'Queryable.Contains(IQueryable, TSource)' 需要類型為 'IQueryable' 的接收器 string[] terms = new string[31];我正在嘗試查看數(shù)組中是否包含我的 Excel 文件中的內(nèi)容。(使用互操作)if (terms.Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString())) ;{}為什么包含在這里不起作用?我進行了搜索,顯然,這與類型不同有關,但在這種情況下,確實如此。它們都是字符串。
3 回答

Helenr
TA貢獻1780條經(jīng)驗 獲得超4個贊
Array( string[]
) 實現(xiàn)IList
所以應該有Contains(object o)
方法。但是實現(xiàn)是顯式的,這意味著只有當類被視為接口時才能訪問該方法:
if (((IList)terms).Contains(xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
有一種擴展方法System.Linq.Enumerable.Contains
。
string[]
是一個IEnumerable<string>
所以你可以使用它。
添加using System.Linq;
到文件頂部以使用它。
https://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains(v=vs.110).aspx

守著星空守著你
TA貢獻1799條經(jīng)驗 獲得超8個贊
您可以使用Array.Exists并傳遞比較 lambda 表達式:
if (Array.Exists(terms, elem => elem == xlWorkSheet.Cells[1, i1 + 1].Value.ToString()))
{
...
}
- 3 回答
- 0 關注
- 1446 瀏覽
添加回答
舉報
0/150
提交
取消